Выбор ответа Junior Функции, расширения и scope-функции спрашивают часто обновлено
Что возвращает apply
Вопрос
Что вернёт StringBuilder().apply { append("a"); append("b") }?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Сам объект StringBuilder, на котором вызван apply. apply всегда возвращает объект-получатель, внутри он доступен как this.
Варианты ответа
- Строку
"ab", собранную из двухappend Unit, как у лямбды без результата- Результат последнего
append, только если он неnull - Сам объект
StringBuilder, на котором вызванapplyправильный ответ
Разбор
apply всегда возвращает объект-получатель, внутри он доступен как this. Поэтому apply используют для настройки: создали, сконфигурировали, получили тот же объект. Чтобы получить строку, нужен toString() или buildString { }. Результат лямбды возвращают let и run, а не apply.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.