На этом шаге мы рассмотрим особенности выполнения указанной операции.
Получить доступ к значению в массиве можно по его ключу. В случае с массивом 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 перечислены некоторые наиболее часто применяемые функции и их поведение.
Функция | Описание | Пример |
---|---|---|
[] (оператор доступа по индексу) | Возвращает значение для указанного ключа или 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 |
На следующем шаге мы рассмотрим добавление записи в ассоциативный массив.