it
- Kotlin kursu
- Orta seviye
- Ders 55/116
- 5 dk
it ile tek parametreli lambda öğrenirsin.
it
Bir lambda'nın tek bir parametresi varsa, parametre adını yazmak yerine it kullanılabilir. Kotlin bunu otomatik olarak çıkarır.
Örnek: val square: (Int) -> Int = { it * it }. Burada it tek parametreyi ifade eder. square(5) çağrısı 25 döndürür. it kullanımı kısa kod için uygundur; ama birden çok parametre olduğunda veya okunabilirlik düştüğünde açık parametre adı tercih edilir. listOf(1,2,3).map { it * 2 } çağrısı it'in yaygın kullanımıdır.
it kullanımı
it özellikle koleksiyon metotlarında yaygın kullanılır. map, filter, forEach gibi metotlar tek parametreli lambda alır.
Örnek: listOf(1, 2, 3).map { it * 2 } her öğeyi ikiye katlar ve [2, 4, 6] döndürür. listOf(1, 2, 3).filter { it > 1 } büyük olanları süzer ve [2, 3] döndürür. it kullanımı kodu kısa tutar. İç içe lambda'larda it çakışabilir; bu durumda açık parametre adı kullanılır.
Uygulama square ve map ile it
val square: (Int) -> Int = { it * it } bildir. main içinde println(square(5)) ve println(listOf(1, 2, 3).map { it * 2 }) çağrılarını ayrı satırlarda yap.
Başlangıç kodu
// square lambda, it ile
// main'de square ve map fonksiyonlarını çağır
// iki sonucu ayrı satırda yazdırÖrnek çözüm
val square: (Int) -> Int = { it * it }
fun main() {
println(square(5))
println(listOf(1, 2, 3).map { it * 2 })
}Beklenen çıktı
25 [2, 4, 6]
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 it ile lambda tamamla
val square: (Int) -> Int = { ____ * it }
val square: (Int) -> Int = { it * it }
Açıklama: it tek parametreli lambda'da parametreyi ifade eder.
2 it kullanımını eşle
| Kavram | Anlamı |
|---|---|
{ it * it } |
Tek parametreli lambda |
{ it * 2 } |
map gövdesi |
{ it > 1 } |
filter gövdesi |
listOf(...).map |
Koleksiyon çağrısı |
3 <code>it</code> ne zaman kullanılır?
- Birden çok parametreli lambda'da
- Sınıf içinde
- Tek parametreli lambda'da Doğru cevap
- Yalnızca fun ile
Açıklama: it tek parametreli lambda'da kullanılır.