Uzatmalar sayesinde, Swift’teki mevcut veri tipleri içine, yeni hesaplanmış tipler ya da özellikler eklenebilir. Aşağıdaki örnekte, deniz ve kara milini km cinsinden temsil eden tipler ve kullanılışı görülmektedir:
ÖRNEK
extension Double {
var denmil: Double { return self * 1.8520 }
var m: Double { return self * 1_000}
var km:Double {return self }
var karmil: Double { return self * 1.609344 }
}
let mesafe = 510.km
print("MESAFE= \(mesafe) kilometre")
let yol = 35.denmil
print("35 DENIZ MİLİ... \(yol) kilometre")
let dis=230.karmil
print("230 KARA MİLİ... \(dis) kilometre")
Programın çıktısı ise aşağıdadır:
MESAFE= 510.0 kilometre
35 DENIZ MİLİ... 64.82 kilometre
230 KARA MİLİ... 370.14912 kilometre
Bu örnekte oluşturulan yeni tipler (denmil, karmil) double tipindedirler ve double türdeki her ifadede kullanılabilirler.
Örneğin, farklı birimlerdeki mesafe, yol ve dis değerlerinin toplamı km cinsinden otomatik olarak hesaplanır:
let t=mesafe+yol+dis
print(“TOPLAM=\(t)..KM")
print komutu aşağıdaki çıktıyı verecektir:
TOPLAM=944.96912..KM
İLK DEĞER ATAMA
Aşağıdaki sehir adlı yapıda iki özellik mevcuttur: yer ve boyut
Yer özelliğinin iki bileşeni vardır: enlem ve boylam
Boyut özelliğinin de iki bileşeni mevcuttur:i nsan ve ticarihacim
Aşağıdaki kod ile bu özelliklerin tümüne ilk değer olarak 0 atanmaktadı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()
}
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)")
PROGRAMIN ÇIKTISI
ENLEM=0.0
BOYLAM=0.0
NÜFUS=0.0
TİCARİ HACİM=0.0