Шаг 111.
Основы Kotlin.
Списки и множества. Проверка содержимого списка

    На этом шаге мы рассмотрим используемые для этого функции.

    В таверне есть темные углы и секретные помещения. К счастью, у трактирщика острый глаз, и он скрупулезно записывает, кто пришел или ушел. Если спросить, присутствует ли конкретный посетитель, то трактирщик сможет ответить, заглянув в список.

    Измените код 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." 
пперед вызовом placeOrder().


Рис.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. Результат работы приложения (ответ выделен)

    На следующем шаге мы рассмотрим изменение содержимого списка.




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