
sondaki lambda Kotlin’de diğer programlama dillerinde olmayan yeni bir şey. En azından, onu destekleyen başka bir programlama dilinin farkında değilim.
Böyle bir kod gördüğünüzde:
var result = operateOnNumbers(a, b) { input1, input2 ->
input1 + input2
}
println(result)
Temelde şu anlama gelir operateOnNumbers()
3 parametresi vardır. Son parametre, genellikle işlev referansına ilettiğiniz veya lambda.
var result = operateOnNumbers(
input1 = a,
input2 = b,
operation = { input1, input2 ->
input1 + input2
}
)
println(result)
Her nasılsa, bu sondaki lambda sözdizimine hala alışamıyorum. Bir işlev uygulamasına benziyor.
Bu yüzden, Trailing Lambda sözdizimini her gördüğümde zihnimin her zaman otomatik olarak buna eşlenmesi gerekiyor (parantezlerin dışındaki kod aslında işlevin son parametresidir).
imzalanması ve uygulanması operateOnNumbers()
buna benzer:
fun operateOnNumbers(
input1: Int,
input2: Int,
operation: (Int, Int) -> Int): Int {
return operation(input1, input2)
}
Diğer taraftan, sondaki virgül diğer dilde oldukça yaygındır.
Sondaki Virgülle
var result = operateOnNumbers(
a,
b,
) { input1, input2 ->
input1 + input2
}
Sonda Virgül Olmadan
var result = operateOnNumbers(
a,
b
) { input1, input2 ->
input1 + input2
}
Bunu kullanmanın yararı, daha kolay fark ve birleştirmeye izin vermesidir. Benim için kopyala ve yapıştır hayatımı kolaylaştırıyor. Evet, çok fazla kopyala ve yapıştır yapıyorum!
Çözüm
Umarım bu kısa gönderiyi beğenirsiniz. Bu konuda blog yazmak istiyorum (özellikle Trailing Lambda) çünkü bazen bana kafa karıştırıcı geliyor, özellikle işlev çağrısı biraz karmaşık. Her zaman kendime hatırlatmam gerekiyor, parantez dışındaki kod aslında işlevin son parametresidir..