Extension Yardımı ile Bir Yapıya (Structure) Özellik (Property) Ekleme
Lisans:
Creative Commons
11.12.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