Ответ
Inline классы в Kotlin — это обёртки над примитивными типами или другими классами, которые не создают дополнительных накладных расходов во время выполнения, так как компилятор «разворачивает» их в базовый тип. Они помогают улучшить типобезопасность без потери производительности.
Пример:
inline class Password(val value: String)
fun login(password: Password) { ... }
// Использование
val securePassword = Password("12345")
login(securePassword) // ОК
login("12345") // Ошибка компиляции
Особенности:
- Должны иметь ровно одно свойство в конструкторе
- Не могут быть
null(если не обёрнуты в nullable-тип) - Поддерживают методы и свойства, но не могут иметь
init-блоки