Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗ktSpSfAp 13 of 299 menu
◀ ▶

Настройка объекта в Kotlin

Функция apply выполняет блок с получателем this и возвращает сам объект, а не результат последнего выражения в лямбде. Так удобно заполнить свойства сразу после создания экземпляра:

class Guest(var name: String = "", var nights: Int = 0) fun main() { val guest = Guest().apply { name = "mia" nights = 2 } println(guest.name) println(guest.nights) }

Цепочка «конструктор, затем настройка» читается как одно выражение. Снаружи остается переменная того же типа, что и без scope-вызова:

class Guest(var name: String = "", var nights: Int = 0) fun main() { val guest = Guest().apply { nights = 5 } println(guest.nights) }

В блоке можно вызывать методы объекта. Возвращаемое значение apply не зависит от того, что вернула последняя строка лямбды:

class Guest(var name: String = "", var nights: Int = 0) { fun reset() { nights = 0 } } fun main() { val guest = Guest().apply { name = "leo" reset() } println(guest.name) println(guest.nights) }

Сделайте класс Widget с изменяемыми color и size. Создайте виджет, задайте "red" и 10 одним выражением и выведите оба поля.

Класс Route хранит from и to. Получите настроенный маршрут сразу при создании и передайте его в функцию, которая печатает оба города через дефис.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить