8 Nisan 2018 Pazar

Kotlin Dersleri - 09 - Extension ve Infix fonksiyonlar

Bazı durumlarda fonksiyonun başında bir değer olması gerebilir. Bu tür fonksiyonlara eklemeli (extension) fonksiyonlar denir. 

//Extension functions
fun Int.topla(sayi1:Int) : Int = this+sayi1

fonksiyon çağrılırken önüne Int tipinde bir sayı konulabilir. 

var a = 9.topla(8).topla(10) //9 + 8println(a)

Yukarıda main fonksiyonundan çağrılan extension topla fonksiyonu gösterilmiştir. 9.topla(8) ifadesi 17 döndürürken 17.topla(10) durumuna gelir ve sonuç 27 olarak döner. Burada fonksiyon toplama işleminden daha karışık bir işlem seçilebilirdi, örneğin 8 rakamını 9 kere ekrana yaz vb. Extension fonksiyonlar özel işlem durumlarında normal fonksiyonlara göre işleri oldukça kolaylaştırmaktadır.

Infix fonksiyonlar ise daha önceki derslerde anlattığımız in, downto, step gibi sözcük ekleriyle yapılan fonksiyonlardır. Bu fonksiyonlarda program anlaşılırlığını kolaylaştırır. Ayrıca programcının kendi tanımladığı infix fonksiyonlar ile Kotlin çok daha fazla özelleştirilebilir. Infix fonksiyonlar tanımlanırken başına "infix" öneki konulur.

//Infix functions  downto, step
 infix fun String.ekle(s : String) : String = this + s

Bu fonksiyonların kullanımı ise şöyledir;

println("yasin" ekle " hoca")

 Kodların tamamına bakacak olursak;
fun main(args: Array<String>){

    var a = 9.topla(8).topla(10) //9 + 8    println(a)

    println("yasin" ekle " hoca")

}

//Extension functions
fun Int.topla(sayi1:Int) : Int = this+sayi1


//Infix functions  downto, stepinfix fun String.ekle(s : String) : String = this + s

Bu dersi video olarak izleyebilirsiniz;

Hiç yorum yok:

Yorum Gönder