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

Вызов скобками в Kotlin

Лямбду вызывают скобками после имени. Тот же прием доступен и объекту, если в классе объявить invoke с operator - тогда значение типа ведет себя как маленькая функция:

class Greeter(val prefix: String) { operator fun invoke(name: String): String { return "$prefix, $name" } }

После объявления имя переменной ставят перед скобками с аргументом. Компилятор направит вызов в invoke:

fun main() { val hello = Greeter("Hello") val line = hello("Ann") println(line) }

Параметров может быть несколько или не быть вовсе - главное, чтобы сигнатура совпадала с тем, как вы пишете скобки в коде.

Сделайте класс Banner с полем prefix. Вызов со строкой в скобках должен возвращать подпись через запятую. Проверьте префикс "Hi" и имя "Bob", результат выведите.

Создайте Banner("Go") и получите строку для "team" вызовом со скобками. Выведите её.

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