АКЦИЯ: бесплатные месячные курсы по созданию сайтов
на выбор: верстка, JavaScript, PHP, Python или фреймворки. Сегодня последний день для записи! Жми!
470 of 1310 menu
Вступайте в телеграмм-канал сайта code.mu: новинки, статьи, интервью, задачи, бесплатные курсы и тренинги. Жми для вступления:)

Функция 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,
    которая преобразует элементы и возвращает новую коллекцию