İOS Swift

Swift Fonksiyon Tipleri

swift fonksiyon

Her fonksiyon, parametre ve return değerlerinin tipleriyle belirlenen bir fonksiyon tipine sahiptir.

func sum(a: Int, b: Int) -> Int {
    return a + b
}
func multiply(a: Int, b: Int) -> Int {
    return a * b
}

Üstte yer alan sum ve multiply fonksiyonları 2’şer adet int tipinde parametre değeri almaktadır. Return değeri olarak ise yine int tipinde bir değer döndürmektedir.

Bu iki fonksiyonda (Int, Int) -> Int tipindedir ve şu şekilde okunabilir:

Bu fonksiyon 2 adet int tipinde parametre sahibidir ve işlem sonucunda int tipinde bir return değerine sahiptir.

func printHelloWorld() {
    println("hello, world")
}

Üstteki fonksiyon ise:

Bu fonksiyon hiç bir parametre almamaktadır ve void tipinde değer döndürmektedir. Fonksiyonlar yaptıkları işlem sonucunda bir değer üretmiyorlarsa, her zaman void değeri döndürürürler. Bu da boş bir tuple değerine () eşittir.

Fonksiyon Tiplerini Kullanma

var mathFunction: (Int, Int) -> Int = multiply

Üstteki kod satırında mathFunction adında bir değişken tanımlıyoruz. Daha sonra da multiply isimli foknsiyonu işaret ediyoruz. Yani kaba tabirle söyleyecek olursak, bir fonksiyon tipini değişken olarak kullanıyoruz.

Örnek üzerinden gidecek olursak:

println("Sonuç: (mathFunction(2, 3))")
//Konsola "Sonuç: 6" yazdıracaktır.


mathFunction = sum
println("Sonuç: (mathFunction(2, 3))")
//Konsola "Sonuç: 5" yazacaktır.

Gördüğünüz gibi, en başta multiply işlemini tanımladığımız fonksiyon tipi değişkenine, daha sonra sum işlemini de tanımlayabiliyoruz. Bunu yaptıktan sonra konsolda çıkan sonuçta, önce çarpma daha sonra da toplama işlemi yapıldığını görebilirsiniz.

Fonksiyon Tiplerini Parametre Olarak Kullanma

Fonksiyon tiplerini değişken olarak nasıl kullanabileceğimizi anladık. Bunun yanında fonksiyon tiplerini başka fonksiyonlar için parametre olarak kullanabiliriz. Biraz karışık bir cümle oldu, örneği incelediğinizde çok basit ve etkili bir işlem olduğunu anlayacaksınız.

func printMathResult(mathFunction: (Int, Int) -> Int, a: Int, b: Int) {
    println("Sonuç: (mathFunction(a, b))")
}
printMathResult(sum, 3, 5)
// Konsola "Sonuç: 8” yazacaktır

mathFunction isimli fonksiyon tipini parametre olarak kullandık ve ona sum fonksiyonunu gönderdik. Bu da bize 3 ile 5 i toplayıp sonucunu verdi.

Yorum Ekle

Yorum Yap