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

Приватные расширения в Kotlin

Модификатор private перед fun или val скрывает расширение за пределами текущего файла. Внутри того же файла к нему обращаются как к обычному расширению через точку:

private fun String.trimmed(): String { return this.trim() } fun showGreeting(raw: String) { println(trimmed(raw)) } fun main() { showGreeting(" hi ") }

Приватное расширение удобно для коротких шагов, которые нужны только вспомогательным функциям этого файла. Публичная функция showGreeting вызывает trimmed, а снаружи файла имя trimmed недоступно:

private fun Int.half(): Int = this / 2 fun reportSize(count: Int) { println(half(count)) } fun main() { reportSize(10) }

Для свойства-расширения пишут private val по тем же правилам. Так в файле остаются только те операции, которые должны видеть другие части программы.

Объявите private функцию doubled для Int. Публичная функция printTwice принимает число, выводит его удвоенное значение. Вызовите printTwice(4) из main.

Определите, соберется ли вызов doubled(3) из другого файла, если doubled объявлена как private fun Int.doubled.

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