Шаг 131.
Основы Kotlin.
Ассоциативные массивы. Задача для самостоятельного решения
   
На этом шаге мы рассмотрим некоторую задачу и ее возможное решение.
   
Задание: вышибала в таверне
   
Посетитель без золота не должен делать заказы. Более того, он не должен слоняться без дела по таверне, и вышибала должен сразу его заметить. Если у посетителя нет денег, выгоните его 
на негостеприимную улицу NyetHack, удалив из uniquePatrons и массива patronGold.
Раскрыть/скрыть решение и комментарии.
   
Мы предлагаем решить эту проблему так: заведем множество, куда будем записывать всех неплетежеспособных посетителей, а затем вычтем его из требуемых массивов.
   
Текст функции checkingPatronBalances(), решающей указанную задачу, может быть таким:
.   .   .   .
fun main() {
    .    .   .   .
    displayPatronBalances()
    checkingPatronBalances()
    println("----------------")
    displayPatronBalances()
}
private fun checkingPatronBalances()
{
    // Множество удаляемых посетителей
    val removePatron = mutableSetOf<String>()
    patronGold.forEach { patron, balance ->
        if (balance <= 0) {
            // Если нет денег...
            removePatron += patron // ...выгоняем
        }
    }
    // Удаляем неплатежеспособных
    patronGold -= removePatron
    uniquePatrons -= removePatron
}
Файл с проектом можно взять 
здесь.

Рис.1. Текст функции checkingPatronBalances(). В функции main() приведен ее вызов
   
Результат работы приложения приведен на рисунке 2:

Рис.2. Результат работы приложения
   
Под чертой из символов "-" в функции main() для проверки перечислены платежеспособные посетители таверны.
 
   
Со следующего шага мы начнем рассматривать объявление классов.
Предыдущий шаг 
 
Содержание 
 
Следующий шаг