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

Выдача значения в Kotlin

Если класс лишь читает значение параметра типа и никогда не принимает его снаружи в поля или методы записи, параметр можно объявить с меткой out. Так помечают роль типа - источник данных.

Оболочка хранит одно значение и отдает его через свойство без сеттера:

class Holder<out T>(val value: T) fun printValue(source: Holder<Any>) { println(source.value) } fun main() { val text = Holder("log") printValue(text) }

Класс Holder<String> подходит там, где ждут Holder<Any>: из оболочки только читают, поэтому более конкретный тип безопасно подставляется вместо общего:

fun <T> firstHolder(list: List<Holder<T>>): T? { return list.firstOrNull()?.value } fun main() { val row: List<Holder<String>> = listOf( Holder("a"), Holder("b") ) println(firstHolder(row)) }

Сделайте класс с параметром типа, помеченным для выдачи, и одним свойством только для чтения. Передайте объект со строкой "zip" в функцию, которая принимает оболочку с Any, и выведите значение.

Соберите список из двух оболочек с числами 1 и 2. Напишите функцию, которая возвращает значение из первой оболочки списка, и выведите результат.

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