Ограничения типов ограничивают, какие типы можно использовать в качестве аргументов обобщённого типа, обеспечивая безопасность типов и позволяя получать доступ к определённым членам ограниченного типа.
Наиболее частое ограничение — это верхнее ограничение, определяемое с помощью двоеточия (:) после параметра типа:
fun <T : Comparable<T>> sort(list: List<T>)
T должен быть подтипом Comparable<T>ComparableAny?whereКогда параметр типа должен удовлетворять более чем одному ограничению, используй конструкцию where:
fun <T> process(t: T) where T : Comparable<T>, T : Serializable
T должен реализовывать как Comparable<T>, так и Serializablewhere можно также применять к объявлениям классов:class Repository<T> where T : Entity, T : Cloneable
:) для простых ограниченийwhere, когда требуется несколько ограниченийВ Kotlin, когда для параметра типа не указана явная верхняя граница, верхней границей по умолчанию является Any?, что позволяет использовать nullable типы.
Новый — ещё не проверен сообществом
Вы