Введение в типы и поля в Kotlin
Тип в Kotlin задает, какие значения допустимы в переменной, параметре и результате функции. Длинные записи вроде карты со строковым ключом и числовым значением читаются тяжело, если повторять их в каждой сигнатуре.
Короткое имя для уже существующего типа убирает повторение длинной записи в параметрах и переменных. Поведение значений при этом не меняется.
Слово typealias объявляет такое имя. Новое имя
полностью заменяет длинную запись в том месте, где
его написали:
typealias ScoreBoard = Map<String, Int>
fun totalFor(board: ScoreBoard, player: String): Int {
return board[player] ?: 0
}
Параметр board имеет тот же смысл, что и
Map<String, Int>, но имя ScoreBoard
сразу говорит о назначении данных. Компилятор не создает
отдельный тип - это лишь удобная подпись:
typealias ScoreBoard = Map<String, Int>
fun main() {
val board: ScoreBoard = mapOf("ann" to 7, "bob" to 5)
println(board.size)
}
Карта создается обычным способом, а переменная помечена псевдонимом. Так проще держать единый стиль имен в модуле, где одни и те же структуры данных встречаются часто.
Псевдоним не меняет поведение программы: проверки типов остаются такими же, как у исходной записи. Выигрыш только в читаемости и в том, что смысл данных виден из имени.