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

Практика делегирования в Kotlin

Объявите interface HasSize с fun size(): Int. Реализуйте в class ListSize(private val items: List<String>). Объявите class SizeView(s: HasSize) : HasSize by s. Выведите размер для списка listOf("a", "b").

Объявите interface Writer с методом write(text: String). Объявите class BufferWriter : Writer, накапливающий строки в MutableList<String>. Объявите class PrefixWriter(w: Writer) : Writer by w и переопределите метод write: добавляйте префикс "> " и вызывайте w.write. Запишите строку "one" через PrefixWriter и выведите содержимое буфера.

Объявите class Job. Объявите свойство val report: String by lazy со строкой "done". Создайте объект класса и два раза подряд выведите report.

Объявите class ScoreBoard. Объявите свойство var points: Int by Delegates.observable(0) { _, _, new -> if (new >= 10) println("win") }. Доведите points до 10 двумя присваиваниями.

Объявите class Row(data: Map<String, Any?>). Объявите поля sku и qty на основе карты data. Для карты mapOf("sku" to "x1", "qty" to 3) выведите количество.

Объявите class NonEmpty с методом setValue: пустую строку не записывать. Объявите class Note с полем var body: String by NonEmpty(). Присвойте "", затем "hi", выведите body.

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