Swift Dilinde Fonksiyonların Çağırılması

Bu derste Swift dilinde fonksiyonların çağırılması konusunu ele alalım.

Bir fonksiyon çağrılırken parametre değişkeni sayısı kadar argüman girilmek zorundadır. Argümanlar aynı türden herhangi bir ifade olabilirler.  Parametrelerin birer yerel ismi (local name) ve birer de dışsal ismi (external name) bulunur. Fonksiyon çağrılırken argümanda etiket (label) olarak dışsal isim belirtilmek zorundadır. Dışsal isimler fonksiyon parametre bildiriminde yerel isimlerin solunda belirtilirler.

Örneğin:

func foo(width w: Double, height h: Double) -> Double

{

    return w * h

}

var result = foo(width: 10, height: 200)

print(result)

Görüldüğü gibi fonksiyon çağrılırken dışsal isimler etiket olarak belirtilmek zorundadır. Fonksiyon çağırma sırasında argüman oluşturma işleminin genel biçimi şöyledir:

[dışsal isim etiketi][:]<ifade>

Dışsal isim yerine ‘_’ karakteri kullanılırsa bu durumda çağırma sırasında dışsal isim etiketi bulundurulmaz.

Örneğin:

func foo(width w: Double, _ h: Double) -> Double

{   

    return w * h;

}

var result = foo(width: 10, 200)

print(result)

Fonksiyonların birinci parametrelerinde default olarak ‘_’ belirlemesi yapılmış gibidir.  Yani biz birinci parametreye dışsal isim vermezsek bunun için argümanda etiketleme yapmamalıyız. Örneğin:

func foo(w: Double, height h: Double) -> Double

{

    return w * h;

}

Bu bildirim şununla eşdeğerdir:

func foo(_ w: Double, height h: Double) -> Double

{

    return w * h;

}

Fonksiyonun çağrımı şöyle yapılabilir:

var result = foo(10, height: 200)          // birinci argümanda etiketleme yapamayız

print(result)

Eğer fonksiyonun birinci parametresine dışsal isim verilmişse artık çağırırken bunun etiketlendirilmesi gerekir.

Örneğin:

func foo(width w: Double, height h: Double) -> Double

{

    return w * h;

}

var result = foo(10, height: 200)   // error! birinci argümanda etiketleme yapmak zorundayız

print(result)

Önemli: İstisna olarak Sınıfların başlangıç metotlarının (init metotlarının) birinci parametresi ‘_’ biçiminde değildir. init metotlarını çağırırken ilk argüman da etiketlendirmek zorundadır. Sınıflar ileride ayrıntılarıyla ele alınacaktır.

Fonksiyon bildirimi sırasında parametre değişkenlerine dışsal isim hiç verilmeyebilir. Bu durumda yerel isim aynı zamanda dışsal isim olarak kullanılır.
Örneğin:

func foo(w: Double, h: Double) -> Double

{

    return w * h;

}

var result = foo(10, h: 200)

print(result)

Burada yine birinci parametre için dışsal isim olarak ‘_’ belirleyicisi kullanılmıştır. Ancak ikinci parametrede dışsal isim kullanılmadığı için yerel isim aynı zamanda dışsal isim olarak ele alınmaktadır.

NOT: İZİNSİZ PAYLAŞILMASI YASAKTIR!

Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

Yukarı Git