ในภาษา Swift ก็มี Higher-order functions ให้ใช้เหมือนกับภาษาอื่นๆ อย่างเช่น map filter อะไรพวกนี้ เรามาดูกันหน่อยว่าเราจะสามารถใช้พวกนี้ใน Swift ได้อย่างไรบ้าง
Map
Map function ใช้สำหรับแปลงข้อมูลใน array จากรูปแบบนึงไปสู่อีกรูปแบบนึง โดยเมื่อแปลงเสร็จแล้ว จะสร้างเป็น collection ใหม่
ตัวอย่างเช่น ถ้าอยากจะแปลงข้อมูลใน array string ชุดนี้ให้เป็น uppercase ทั้งหมด ก็จะเป็น
หรือจะเอามานับจำนวน character ใน string ก็ทำได้เหมือนกัน
CompactMap
compactMap function จะคล้ายกับ map แต่เราสามารถการกรองข้อมูลที่เป็น nil ออกไปได้
อย่างเช่นในตัวอย่างนี้ เราสามารถกรองข้อมูลที่สามารถแปลงไปเป็นตัวเลขได้อย่างเดียวได้
FlatMap
flatMap function ใช้เพื่อรวม collection ของ collections ให้เป็นระดับเดียว ให้นึกถึง nested array หรือ array ที่มีการซ้อนกันหลายๆ ชั้น สามารถนำ flatMap มาช่วยได้
Sort
sort function ใช้สำหรับเรียงข้อมูลใน array
Filter
filter function ใช้สำหรับกรองข้อมูลตามเงื่อนไขที่เราต้องการ
อย่างในตัวอย่างนี้ จะกรองตัวเลขที่เป็นเลขคู่
Reduce
reduce function ใช้สำหรับรวมค่าใน collection ให้เป็นค่าค่าเดียว วิธีการคร่าวคือเราต้องกำหนดค่าเริ่มต้นก่อน จากนั้นใน body ของ closures ก็ทำการรวมค่าก่อนหน้ากับค่าปัจจุบันเข้าด้วยกัน
ในตัวอย่างนี้จะรวมค่าใน array