Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
fun main() {
var count = 0
val tick = { count += 1 }
tick()
tick()
println(count)
}2
- Ждать
0: лямбда не получает копиюcount. Она запоминает саму переменную, поэтому оба вызова меняют туcount, которую читаетprintln. - Считать, что тело лямбды выполняется при её создании:
val tick = { count += 1 }только сохраняет лямбду, иcountрастёт лишь при двух вызовахtick().
- Что выведет программа, если между двумя вызовами добавить
count = 10? - Что изменится, если объявить
countчерезval, а неvar?