Функция onEach
Функция onEach
применяет указанное действие
к каждому элементу коллекции и возвращает исходную коллекцию.
Отличается от forEach
тем, что возвращает коллекцию,
что позволяет использовать её в цепочках вызовов.
Работает с массивами, списками, множествами, отображениями
и другими типами коллекций.
Синтаксис
// Для Iterable (List, Set)
inline fun <T> Iterable<T>.onEach(action: (T) -> Unit): Iterable<T>
// Для Array
inline fun <T> Array<T>.onEach(action: (T) -> Unit): Array<T>
// Для Map
inline fun <K, V> Map<K, V>.onEach(action: (Entry<K, V>) -> Unit): Map<K, V>
// Для Sequence
inline fun <T> Sequence<T>.onEach(action: (T) -> Unit): Sequence<T>
Пример
Использование onEach
с массивом чисел:
val numbers = arrayOf(1, 2, 3, 4, 5)
val result = numbers.onEach { println("Processing: $it") }
println("Original array preserved:")
result.forEach { print("$it ") }
Результат выполнения кода:
Processing: 1
Processing: 2
Processing: 3
Processing: 4
Processing: 5
Original array preserved:
1 2 3 4 5
Пример
Использование onEach
со списком строк:
val letters = listOf('a', 'b', 'c', 'd', 'e')
val modified = letters
.onEach { println("Letter: $it") }
.map { it.uppercaseChar() }
println("Modified list:")
println(modified)
Результат выполнения кода:
Letter: a
Letter: b
Letter: c
Letter: d
Letter: e
Modified list:
[A, B, C, D, E]
Пример
Использование onEach
с отображением (Map):
val map = mapOf("one" to 1, "two" to 2, "three" to 3)
val resultMap = map.onEach {
println("Key: ${it.key}, Value: ${it.value}")
}
println("Map after onEach:")
println(resultMap)
Результат выполнения кода:
Key: one, Value: 1
Key: two, Value: 2
Key: three, Value: 3
Map after onEach:
{one=1, two=2, three=3}
Пример
Использование onEach
с множеством (Set):
val set = setOf(10, 20, 30, 40, 50)
val resultSet = set.onEach {
if (it > 25) println("Large number: $it")
}
println("Set contents:")
println(resultSet)
Результат выполнения кода:
Large number: 30
Large number: 40
Large number: 50
Set contents:
[10, 20, 30, 40, 50]
Смотрите также
-
функцию
forEach
,
которая выполняет действие, но не возвращает коллекцию -
функцию
forEachIndexed
,
которая предоставляет индекс элемента при выполнении действия -
функцию
map
,
которая преобразует элементы и возвращает новую коллекцию