نمونه های دنیای واقعی (Real-Life Examples)
آرایه ها همه جا هستند. در «نمونه های دنیای واقعی آرایه ها» داده ها را فهرست می کنیم، می یابیم، و تبدیل می کنیم. «ترکیب تابعی (Functional)» یعنی با توابع آماده کار کنیم، نه با حلقه های دستی.
پردازش آرایه ها با filter/map/reduce
توابع «فیلتر (filter)»، «مپ (map)»، و «ردیوس (reduce)» روی آرایه ها اجرا می شوند. فیلتر انتخاب می کند، مپ تغییر می دهد، و ردیوس جمع بندی می کند. مثل تصحیح نمره های کلاس.
let scores = [72, 88, 95, 64, 83]
let passed = scores.filter { $0 >= 75 }
let curved = passed.map { $0 + 5 }
let average = curved.reduce(0, +) / curved.count
print(passed)
print(curved)
print("Average: \(average)")
نکته: سبک تابعی معمولاً خواناتر است و خطا را کم می کند.
جستجو و اندیس در آرایه
برای عضویت از contains کمک بگیر. برای یافتن جایگاه از firstIndex(of:) استفاده کن. مثل پیدا کردن اسم دوستت در لیست کلاس.
let names = ["Kai", "Bjorn", "Stale"]
print(names.contains("Bjorn"))
if let i = names.firstIndex(of: "Stale") {
print(i)
}
گام های عملی
- لیست نمره بساز و قبولی ها را فیلتر کن.
- روی قبولی ها 5 نمره اضافه کن.
- میانگین جدید را با ردیوس حساب کن.
نکته: برای آرایه های دوبعدی نمونه های بیشتر را در آرایه های چندبعدی ببین. برای کار ایمن با اندیس ها هم اندیس ها و کران ها را مطالعه کن. اگر نیاز به پیمایش ساده داری، به حلقه روی آرایه سر بزن.
جمع بندی سریع
- فیلتر انتخاب می کند؛ مپ تغییر می دهد.
- ردیوس داده ها را خلاصه می کند.
- contains برای بررسی وجود است.
- firstIndex جایگاه عنصر را می دهد.