Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
fun main() {
val double = { x: Int -> x * 2 }
val inc: (Int) -> Int = { it + 1 }
println(double(inc(3)))
}8
- Ждать
7: читать строку слева направо. Сначала выполняется внутренний вызов:inc(3)даёт4, и лишь потомdouble(4)даёт8. - Считать, что
itнужно где-то объявить: лямбда с одним параметром сама получает для него имяit, и{ it + 1 }значит то же, что{ x -> x + 1 }.
- Что выведет
println(inc(double(3)))и почему результат другой? - Почему
val double = { it * 2 }не компилируется, аincкомпилируется?