Sobes.tech
Junior — Middle

Jak zastosować wyrażenie lambda w kontekście funkcji rozszerzającej w Kotlin?

sobes.tech AI

Odpowiedź od AI

W Kotlinie wyrażenia lambda są często używane razem z funkcjami rozszerzającymi, aby poprawić czytelność i wygodę kodu. Funkcja rozszerzająca pozwala dodać nową metodę do istniejącej klasy bez dziedziczenia.

Przykład użycia lambda w funkcji rozszerzającej:

// Funkcja rozszerzająca dla List<Int>, która stosuje lambda do każdego elementu i zwraca sumę
fun List<Int>.sumByLambda(transform: (Int) -> Int): Int {
    var sum = 0
    for (item in this) {
        sum += transform(item)
    }
    return sum
}

fun main() {
    val numbers = listOf(1, 2, 3, 4)
    val result = numbers.sumByLambda { it * 2 } // mnoży każdy element przez 2 i sumuje
    println(result) // Wypisze 20
}

Tutaj sumByLambda jest funkcją rozszerzającą dla List<Int>, która przyjmuje wyrażenie lambda transform i stosuje je do każdego elementu listy.