Что выведет код Junior Функции, расширения и scope-функции обновлено

Что возвращают scope-функции

Вопрос

Что выведет код? По строке на каждый вывод.

fun main() {
    val a = "kotlin".let { it.length }
    val b = "kotlin".also { it.length }
    val c = StringBuilder("x").apply { append("y") }.toString()
    val d = "kotlin".run { uppercase() }
    val e = 5.takeIf { it > 10 }
    println(a)
    println(b)
    println(c)
    println(d)
    println(e)
}

Попробуйте сами

Напишите, что выведет код: каждый вывод с новой строки.

Показать ответ и разбор

Коротко

Код выведет: 6, kotlin, xy, KOTLIN, null. let вернул результат лямбды, длину 6. also вернул саму строку, результат лямбды отброшен. apply вернул StringBuilder после добавления. run дал строку как this и вернул результат uppercase(). takeIf вернул null, потому что условие ложно.

Что выведет

6
kotlin
xy
KOTLIN
null

Разбор

let вернул результат лямбды, длину 6. also вернул саму строку, результат лямбды отброшен. apply вернул StringBuilder после добавления. run дал строку как this и вернул результат uppercase(). takeIf вернул null, потому что условие ложно.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.