Назад к вопросам
Junior — Middle
69
Можно ли использовать forEach для вычисления суммы числовых значений в коллекции пар ключ-значение в Kotlin?
Ответ от нейросети
sobes.tech AI
В Kotlin можно использовать forEach для обхода коллекции пар ключ-значение, но для вычисления суммы числовых значений это не самый удобный и идиоматичный способ. forEach не возвращает результат, поэтому нужно заводить внешнюю переменную-счетчик и изменять её внутри лямбды, что не всегда удобно и может привести к ошибкам.
Лучше использовать функции высшего порядка, например, sumOf, которая сразу суммирует значения по заданному критерию:
val map = mapOf("a" to 10, "b" to 20, "c" to 30)
val sum = map.values.sum() // или map.sumOf { it.value }
println(sum) // 60
Если же использовать forEach, то пример будет таким:
var sum = 0
map.forEach { (_, value) ->
sum += value
}
println(sum)
Но предпочтительнее использовать sumOf или sum для чистоты и читаемости кода.