Var olan bir yapıyı kendimize göre geliştirmemize ve genişletmemize yararlar. Tek bir swift dosyasının içine yazıldıklarından her yerden erişilebilir olurlar.
Örnek olarak aşağıda girilen metre değerini kilometre, santimetre ve milimetreye çeviren bir extension ve kullanımı
var uzaklik:Double = 24
print("\(uzaklik) kilometre \(uzaklik.km) metredir dir") //24.0 kilometre 24000.0 metredir dir
print("\(uzaklik) santimetre \(uzaklik.cm) metredir dir") //24.0 santimetre 0.24 metredir dir
print("\(uzaklik) milimetre \(uzaklik.mm) metredir dir") //24.0 milimetre 0.024 metredir dir
extension Double {
var km:Double {return self * 1000.0}
var m:Double {return self}
var cm:Double {return self / 100.0}
var mm:Double {return self / 1000.0}
}
Extensionları aynı zamanda metodlar ile de kullanabiliriz. Aşağıdaki örnekte Double türü geri dönüşlü bir extension aracılığı ile dört işlem yapılabilen bir extension kodu
var deger:Double = 22
print(deger.cikar(sayi: 4)) //18.0
print(deger.ekle(sayi: 2)) //24.0
print(deger.bol(sayi: 2)) //12.0
print(deger.carp(sayi: 4)) //88.0
extension Double {
func ekle(sayi:Double) -> Double {
return self+sayi
}
func cikar(sayi:Double) -> Double {
return self-sayi
}
func carp(sayi:Double) -> Double {
return self*sayi
}
func bol(sayi:Double) -> Double {
return self/sayi
}
}
İlk Yorumu Siz Yapın