На этом шаге мы рассмотрим используемые для этого функции.
В таверне есть темные углы и секретные помещения. К счастью, у трактирщика острый глаз, и он скрупулезно записывает, кто пришел или ушел. Если спросить, присутствует ли конкретный посетитель, то трактирщик сможет ответить, заглянув в список.
Измените код Tavern.kt и используйте функцию contains() для проверки присутствия определенного посетителя.
fun main() { if (patronList.contains("Eli")) { println("The tavern master says: Eli's in the back playing cards.") } else { println("The tavern master says: Eli isn't here.") } placeOrder("shandy,Dragon's Breath,5.91") }
Рис.1. Проверка посетителя (Tavern.kt)
Запустите Tavern.kt. Так как patronList содержит "Eli", вы увидите ответ трактирщика:
"Eli's in the back playing cards."
Рис.2. Результат работы приложения (ответ выделен)
Обратите внимание, что функция contains() выполняет структурное сравнение элементов в списке, как и оператор структурного равенства.
Проверить одновременное присутствие нескольких посетителей можно с помощью функции containsAll(). Измените код и спросите у трактирщика, присутствуют ли Sophie и Mordoc одновременно.
fun main() { if (patronList.contains("Eli")) { println("The tavern master says: Eli's in the back playing cards.") } else { println("The tavern master says: Eli isn't here.") } if (patronList.containsAll(listOf("Sophie", "Mordoc"))) { println("The tavern master says: Yea, they're seated by the stew kettle.") } else { println("The tavern master says: Nay, they departed hours ago.") } placeOrder("shandy,Dragon's Breath,5.91") }
Рис.3. Проверка нескольких посетителей (Tavern.kt)
Запустите Tavern.kt. Вы увидите следующий вывод:
The tavern master says: Eli's in the back playing cards. The tavern master says: Yea, they're seated by the stew kettle.
Рис.4. Результат работы приложения (ответ выделен)
На следующем шаге мы рассмотрим изменение содержимого списка.