Kotlin’de İzleyen Lambda ve Virgül nedir?

Kotlin'de İzleyen Lambda ve Virgül nedir?

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..

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.