Kotlinde extension fonksiyon diye bir kavram vardır. Var olan sınıflara ve de kendi yarattığımız sınıflara ek fonksiyonlar oluşturabiliriz.
Bu sayede ilgili sınıfın kodunu değiştirmeden ve ya ondan yeni bir sınıf extend etmeden sınıfımızın özelliklerini genişletebiliriz.
Bu derste extension fonksiyonlara farklı farklı örnekler yapıp bu konuyu detaylı bir şekilde işleyeceğiz.
Ayrıca infix anahtar kelimesinin kullanımını da öğreneceğiz. Infix anahtar kelimesini kullandığımızda eğer fonksiyonumuz tek parametre alan bir fonksiyon ise nesneden sonra nokta kullanmadan ve bosluk bırakarak methodumuzu ve alacağı parametreyi sırayla yazabiliriz.
Bu derste yazılan kodlar aşağıdaki gibidir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
fun main(args : Array<String>){ println(faktoriyelBul(5)) var sayi1= 6 println(sayi1.faktoriyelBulExt()) var yazi="Emre Altunbilek \t Kotlin" println(yazi) println(bosluklariDuzenle(yazi)) println(yazi.bosluklariDuzenleExt()) var emre=Ogrenci() emre.yetenek="Java" emre.yazdir() var hasan=Ogrenci() hasan.yetenek="Android" hasan.yazdir() //var ali= emre.plus(hasan) var ali = emre plus hasan ali.yazdir() } fun faktoriyelBul(sayi:Int) : Int{ var sonuc = 1 for (i in 1..sayi) sonuc=sonuc*i return sonuc } fun Int.faktoriyelBulExt() : Int { var sonuc = 1 for (i in 1..this) sonuc=sonuc*i return sonuc } fun bosluklariDuzenle(deger:String) : String{ var regex=Regex("\\s+") return regex.replace(deger, " ") } fun String.bosluklariDuzenleExt() : String{ var regex=Regex("\\s+") return regex.replace(this, " ") } infix fun Ogrenci.plus(hasan: Ogrenci) : Ogrenci{ var gecici= Ogrenci() gecici.yetenek = this.yetenek + " " + hasan.yetenek return gecici } |