Fonksiyonlar - 2


Fonksiyonlar - 2

Önceki yazımda fonksiyonlara giriş yapmıştık. Şimdi fonksiyonlar ile ilgili diğer konulara değineceğiz.

External Parametreler

Parametrelere istenilen isimlendirmeyi yapma.
Normalde;
  1. Parametrenin açıklaması yok
  2. Parametrenin açıklaması var

fonksiyon1(“Atakan”, yas: 26)
func fonksiyon1(isim:String, yas:Int)

Bu durumda parametre isimlendirmesi;
func foksiyon1(adPar isim:String, yasPar yas:Int)
fonksiyon1(adPar:”Atakan”,yasPar:26)

Default Parametreler

Kullanıcı boş bıraktığı parametrenin bizim belirlediğimiz değeri döndürmesi.

func ustAlma(sayi:Float, ust:Float = 2) -> Float
//ust parametresi boş bırakılırsa 2 değerini alır.
{return pow(sayi, ust) //pow üst alma fonksiyonu
}

print(ustAlma(3)) -----------> 9
print(ustAlma(3,ust:3))----->27

inout Parametreler

Bir fonksiyonun kendisine parametre argümanı olarak gönderilen değeri değiştirmesi isteniyorsa söz konusu parametrenin inout anahtar sözcüğü ile tanımlanması gerekir. Bu şekilde tanımlanmış olan parametrelere çağırma ifadesinde argüman gönderilirken başlarına “&” sembolü konulmalıdır. Aşağıdaki Increment() isimli fonksiyon bu mekanizmadan faydalanarak yazılmıştır.
func Increment(x:inout Int){
x += 1
}
var i = 10
print(i) //10
Increment (x: &i)
print (i) // 11

Overload Fonksiyonlar (Aşırı Yükleme)

func topla(sayi1:Int, sayi2:Int)->Int
{return sayi1+sayi2}
func topla(sayi1:Int, sayi2:Int, sayi3:Int)->Int
{return sayi1+sayi2+sayi3}
func topla(sayi1:Int, sayi2:Int,sayi3:Int,sayi4:Int)->Int
{return sayi1+sayi2+sayi3+sayi4}
Not: Aynı isimde 3 tane fonksiyon oluşturarak ister 2 parametre ister 3, istersek 4 parametre girerek kullanabiliriz. Fonksiyon yazmaya başlandığında 3 seçenek bize sunulacaktır.
topla(3, sayi2:4, sayi3:2) --------> 9

Variadic Fonksiyonlar

Variadic fonksiyonlar ile parametre sayısını limitsiz hale getirebilirsiniz.
func variadicToplam(sayilar:Int...) -> Int
{var toplam = 0
for sayi in sayilar{
toplam +=sayi
}
return toplam }
print(variadicToplam(3,3,36,12,5)) ------------->59
Not: Virgül konularak istenildiği kadar parametre girilebilir.