Turkcell | Geleceği Yazanlar

Mobil Programlama

iOS

DERS PROGRAMI
Swift ile iOS 101 Ders Programı

Extension Yardımı ile Bir Yapıya (Structure) Özellik (Property) Ekleme

Lisans: Creative Commos (by-nc-sa)02.03.2020 tarihinde güncellendi
Bakabileceğiniz Etiketler:Eğitmen: Geleceği Yazanlar Ekibi

 

Aşağıdaki örnek kod ile, sehir adlı yapıya extension yardımı ile su alanlarını simgeleyen su adlı özellik eklenmiş ve ilk değer ataması yapılmıştır:


 

struct konum{

var enlem = 0.0, boylam = 0.0

}

struct nufus {

var insan = 0.0, ticarihacim = 0.0

}

struct sehir {

var yer = konum()

var boyut = nufus()

}



extension sehir{

var su: Int

{

get { return 0



}

set(su) {



}

}

}



let k=sehir()

print("ENLEM=\(k.yer.enlem)")

print("BOYLAM=\(k.yer.boylam)")

print("NÜFUS=\(k.boyut.insan)")

print("TİCARİ HACİM=\(k.boyut.ticarihacim)")

print("SU ALANLARI=\(k.su)")

Programın çıktısı ise aşağıdadır:

 

ENLEM=0.0

BOYLAM=0.0

NÜFUS=0.0

TİCARİ HACİM=0.0

SU ALANLARI=0

 

EXTENSION YARDIMI İLE MEVCUT BİR YAPIYA BİR METOT EKLEMEK

 

Extensionlar yardımı ile, mevcut tiplere yeni örnek metotları (instance methods) ya da tip metotları (type methods) eklenebilir.

 

ÖRNEK:

Aşağıdaki extension Int türünde AA adlı bir metot tanımlıyor.AA metodunun tek bir argümanı vardır: () -> ()

5.AA({var f=1

for k in 1...5

{f=f*k }

print(f)})

ifadesinde en dış blok {} içindeki fonksiyon 5!=120 değerini hesaplıyor. Böylece 5.AA() ifadesi ile bu faktöriyel fonksiyonu 5 kere çalışacak ve 5 kez 120 değerini (5!) yazacaktır:

extension Int {

func AA(fonk: () -> ()) {

for i in 0...self-1 {

fonk()

}

}

}

 

5.AA({var f=1

for k in 1...5

{f=f*k }

print(f)})

 

Programın çıktısı ise aşağıdadır:


 

120

120

120

120

120