Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗ktSpExtMp 5 of 299 menu
◀ ▶

Расширение карты в Kotlin

Функция-расширение для Map объявляется с типами ключа и значения в угловых скобках. В this лежит карта: по ней можно идти циклом for и читать entry.value или entry.key:

fun Map<String, Int>.maxValueOrZero(): Int { if (this.isEmpty()) { return 0 } var best = 0 for (entry in this) { if (entry.value > best) { best = entry.value } } return best } fun main() { val scores = mapOf("ann" to 8, "bob" to 12) println(scores.maxValueOrZero()) }

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

fun Map<String, Int>.valuesSum(): Int { var total = 0 for (entry in this) { total += entry.value } return total } fun main() { val stock = mapOf("pen" to 3, "book" to 5) println(stock.valuesSum()) }

Объявите функцию maxValueOrZero для Map<String, Int>. Для карты mapOf("x" to 4, "y" to 9) выведите наибольшее значение.

Объявите функцию keyCount для Map<String, Int>. Она возвращает число записей в карте. Проверьте пустую карту mapOf<String, Int> и карту с двумя парами, выведите оба ответа.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить