Тип коллекции в Kotlin
У готовых коллекций параметр типа уже встроен в объявление интерфейса. В угловых скобках после имени указывают, какие типы элементов или пар ключ-значение допустимы.
Список хранит элементы одного типа. Запись
List<String> означает: индекс дает
строку, обход в for тоже работает
со строками:
fun main() {
val tags: List<String> = listOf("go", "api")
println(tags[0])
for (tag in tags) {
println(tag.length)
}
}
Карта связывает ключи одного типа со значениями
другого. У Map два аргумента типа -
первый для ключей, второй для значений:
fun main() {
val scores: Map<String, Int> = mapOf(
"ann" to 90,
"bob" to 85
)
println(scores["ann"])
for ((name, score) in scores) {
println("$name:$score")
}
}
Если перепутать аргументы, компилятор не примет
присваивание: ключи и значения жестко разделены
в сигнатуре. Один и тот же синтаксис угловых
скобок связывает и свой код с List<T>,
и типы из стандартной библиотеки.
Задайте переменную со списком чисел
10, 20, 30 с явным
типом List<Int> и выведите последний
элемент по индексу.
Создайте карту: ключи - строки "ru"
и "en", значения - числа 1
и 2. Выведите значение по ключу
"en".