Swift Dilinde Fonksiyonlar

Bu yazıda Swift dilindeki fonksiyon yapısından kısaca bahsedeceğim. Fonksiyon yapısı hemen hemen C dilindekiyle aynıdır. En basit anlamda bir ya da daha fazla parametre alan ve tek bir değer döndüren bir fonksiyonu aşağıdaki gibi tanımlayabiliriz.

Fonksiyonu yine diğer dillerdeki gibi çağırabiliriz. Eğer herhangi bir değer döndürmeyecekse bunu özel olarak belirtmemize gerek yok. Dönüş değeri hiç belirtmezsek derleyici kendisi Void döndüreceğini anlar.

Peki birden fazla değer döndürmek istediğimizde ne yaparız? Swift’te Tuple denilen bir yapı var. Bu sayede tek bir fonksiyondan birden fazla değer döndürebiliriz ve bu değerleri ayrı ayrı kullanabiliriz.

Fonksiyon birden fazla değer aldığında fonksiyona parametre gönderirken dikkat edilmesi gereken bir durum vardır. İlk parametre için parametre ismini yazmak zorunda olmasak da sonraki parametrelerin ismini belirtmek zorundayız. Böyle bir özellik neden var ben de bilmiyorum.

Eğer parametre ismini fonksiyon çağırdığımız sırada vermek istemiyorsak fonksiyonu tanımlarken parametrenin önüne “_” koyabiliriz.

Parametre ismi verirken içeride kullanılacak ve dışarıda kullanılacak parametre isimlerini yönetebiliriz. Aşağıdaki örneği inceleyin.

Belirsiz sayıda parametre alıyorsa veri türünden sonra “…” koyarız. Bu, o veri türünden bir ya da daha fazla değer gelecek demektir.

Diyelim gelen değerleri değiştirmek istiyorsunuz. Ama Void döndürecek. Yani yollanan değişkenin değeri değişecek. Kopyası oluşturulmayacak. Bununla ilgili en temel örnek olan Swap fonksiyonunu düşünün. İki parametre alıyor ve bunların yeri değişiyor. Eğer C biliyorsanız bunun nasıl yapılacağını hemen anlamış olmasınız :) Swift’te de inout operatörü kullanırız.

En temel özellikleriyle Swift’de fonksiyonlar böyle. Swift Closure dediğimiz bir yapı daha sunuyor. Basit işler için sürekli fonksiyon tanımlamanıza gerek yok. Başka bir zaman da Closure yapısından bahsetmeyi düşünüyorum.