Bütün bilgisayar dillerinde olduğu gibi, Swift’te de fonksiyonlar, dilin en önemli bileşenleri arasındadır.
Belirli işlemler ya da işlem grupları bir fonksiyon içinde toplanarak, gerektikçe bu fonksiyon çağrılır.
Swift’te bir fonksiyonun yapısı aşağıdaki gibidir:
func FonksiyonAdi(Parametre Listesi)->Tip
{ Lokal Değişkenler
komutlar
return değer;
}
Yukarıda görüldüğü gibi, func sözcüğü ile başlayan fonksiyonun bir adı olmalıdır; eğer varsa ve gerekli ise parantezler içinde bir parametre listesi tipleri ile birlikte yer alır. Parantezleri izleyen kısım ise fonksiyonun göndereceği tip bildirisidir.
Fonksiyonun gövdesi(body), {} sembolleri arasında yer alır. Burada, fonksiyon içindeki, sadece o fonksiyona özgü lokal değişkenler ve fonksiyonun yapması gereken işi gerçekleştirmek için gerekli komutlar yer alır.
Fonksiyon çağıran komuta bir değer gönderecekse bu değer bir return komutu içinde yer alır.
ÖRNEK:
func top(n:Int)->Int
{var s=0
for var i=1;i<=n;i++
{s=s+i}
return s;
}
print("1+2+3+...5=\(top(5))")
print("1+2+3+...10=\(top(10))")
print("1+2+3+...20=\(top(20))")
print("1+2+3+...100=\(top(100))")
Programın çıktısı ise aşağıdadır:
1+2+3+...5=15
1+2+3+...10=55
1+2+3+...20=210
1+2+3+...100=5050
Burada top adlı bir fonksiyon, tek bir parametre ile(n), tanımlanmıştır. Fonksiyon Int türünde bir değer göndermektedir. Fonksiyonun gerçekleştirdiği iş, 1’den n’e kadar tamsayıların toplamını hesaplamaktır. Bu toplam s değişkeninde elde edilmekte ve return s komutu ile de çağıran komuta gönderilmektedir.
s ve i, fonksiyonun local değişkenleridir.
Top adlı fonksiyon, 5, 10, 20 ve 100 argümanları ya da gerçek parametreleri (actual parameters) ile çağrılmakta ve sırası ile 1’den 5’e kadar, 10’a kadar, 20’ye kadar ve 100’e kadar tamsayıların toplamları hesaplanmakta ve print içinden çağrılarak (call) yazdırılmaktadır.
ÖRNEK:
Aşağıdaki örnekte verilen EnBuyuk adlı fonksiyon formel parametre olarak bir string almakta ve çağıran komuta da bir string göndermektedir:
func EnBuyuk(Ad: String) -> String {
let son = "EN BÜYÜK..." + Ad + " BASKA BÜYÜK YOK"
return son
}
print(EnBuyuk("FENER"))
print(EnBuyuk("GS "))
print(EnBuyuk("BJK"))
print(EnBuyuk("TÜRKİYE "))
Programın değişik parametre değerleri için elde edilen çıktıları ise aşağıdadır:
EN BÜYÜK...FENER BASKA BÜYÜK YOK
EN BÜYÜK...GS BASKA BÜYÜK YOK
EN BÜYÜK...BJK BASKA BÜYÜK YOK
EN BÜYÜK...TÜRKİYE BASKA BÜYÜK YOK