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.
[…] Fonksiyon Tipleri […]