Шаг 128.
Основы Kotlin.
Ассоциативные массивы. Доступ к значениям в ассоциативном массиве

    На этом шаге мы рассмотрим особенности выполнения указанной операции.

    Получить доступ к значению в массиве можно по его ключу. В случае с массивом patronGold мы будем использовать строковый ключ, чтобы получить доступ к балансу посетителя, выраженному в золоте.

.   .   .   .
fun main() {
    .    .   .   .
    var orderCount = 0
    while (orderCount <= 9) {
        placeOrder(uniquePatrons.shuffled().first(),
                menuList.shuffled().first())
        orderCount++
    }
    println(patronGold)
    println(patronGold["Eli"])
    println(patronGold["Mordoc"])
    println(patronGold["Sophie"])
}
.   .   .   .
Файл с проектом можно взять здесь.


Рис.1. Доступ к личным "золотым" счетам (Tavern.kt)

    Запустите Tavern.kt, чтобы вывести баланс трех посетителей, добавленных в массив:

  10.5
  8.0
  5.5


Рис.2. Результат работы приложения

    Обратите внимание, что вывод содержит только значения, без ключей.

    По аналогии с другими коллекциями, Kotlin обеспечивает функции для доступа к значениям, хранящимся в ассоциативном массиве.

    В таблице 1 перечислены некоторые наиболее часто применяемые функции и их поведение.

Таблица 1. Функции доступа к элементам ассоциативного массива
Функция Описание Пример
[] (оператор доступа по индексу) Возвращает значение для указанного ключа или null, если ключа не существует patronGold["Reginald"]
null
getValue Возвращает значение для указанного ключа, возбуждает исключение, если ключа не существует patronGold.getValue("Reggie")
NoSuchElementException
getOrElse Возвращает значение для указанного ключа или значение по умолчанию, используя анонимную функцию patronGold.getOrElse("Reggie") {"No such patron"}
No such patron
getOrDefault Возвращает значение для указанного ключа или заданное значение по умолчанию patronGold.getOrDefault("Reginald", 0.0)
0.0

    На следующем шаге мы рассмотрим добавление записи в ассоциативный массив.




Предыдущий шаг Содержание Следующий шаг