Выбор ответа Middle Лямбды, inline и reified спрашивают часто обновлено
return внутри forEach
Вопрос
Что выведет код?
fun main() {
listOf(1, 2, 3, 4, 5).forEach {
if (it == 3) return
print("$it ")
}
print("end")
}
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: 1 2. forEach это inline-функция, поэтому return в её лямбде выходит из всей внешней функции main.
Варианты ответа
1 2 end1 2 4 5 end1 2правильный ответ1 2 4 5
Разбор
forEach это inline-функция, поэтому return в её лямбде выходит из всей внешней функции main. После вывода 1 и 2 встречается 3, и main завершается, end не печатается. Чтобы пропустить только текущий элемент, нужен return@forEach, тогда вывод был бы 1 2 4 5 end.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.