Mobil Programlama

iOS

DERS PROGRAMI
iOS 101 Ders Programı

Kapatma (Closure)

Lisans: Creative Commons 11.12.2020 tarihinde güncellendi
Bakabileceğiniz Etiketler: Eğitmen: Geleceği Yazanlar Ekibi

 

Swiftte kapatma adı verilen yapılar C ve Objective C’deki blok yapılarına ya da başka dillerdeki lambda yapılarına benzer.

Global ve iç içe kullanılmış fonksiyonlar aslında kapatmaların özel halleridir. Global fonksiyonlar adı olan fakat değer almayan kapatmalardır. İç içe (nested) fonksiyonlar ise ismi olan ve değer kullanan kapatmalardır.

Nihayet normal kapatmalar ise isimsiz olarak kullanılan kapatmalardır.

Bir kapatmanın genel yazılımı,

{ (Parametreler) -> Gönderdiği Tip in

Deyimler

}

şeklindedir.

 

ÖRNEK:

 

Aşağıdaki closure, s1<s2 ise true s1>s2 ise false değerini göndermektedir:

{(s1: String, s2: String) -> Bool in

return s1 < s2 })

 

Bu closure, aşağıda sort (sıralama) fonksiyonunun bir argümanı gibi kullanılmıştır:

 

var sehir = ["londra", "paris", "atina", "barcelona", "münih"]

sehir = sehir.sorted(by:({(s1: String, s2: String) -> Bool in return s1 < s2 }))

print(sehir)

 

PROGRAMIN ÇIKTISI

 

Program çalıştırılınca, sehir dizisindeki şehirler alfabetik sıraya dizilmişlerdir:

 

[atina, barcelona, londra, münih, paris]

 

Aşağıdaki programda ise ters alfabetik sıra elde edilmiştir:

var sehir = ["londra", "paris", "atina", "barcelona", "münih"]

sehir = sehir.sorted(by:({(s1: String, s2: String) -> Bool in return s1 > s2 }))

print(sehir)

 

[paris, münih, londra, barcelona, atina]