iOS 102Başlangıç seviyesi derslerde iOS uygulama geliştirme ortamını detaylı olarak inceliyoruz.

Tüm Eğitimleri Aldın mı? Kendini sınamanın tam zamanı

Haydi Sınava Gir

Kapatma (Closure)

Kategori : Mobil | Lisans : Creative Commons (by-nc-sa) | En son 22.07.2018 tarihinde güncellendi
Eğitmen : Geleceği Yazanlar Ekibi
Etiketler : swift Closure swift kapatma

 

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]