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

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

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

 

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