НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
468 of 1310 menu

Функция forEach

Функция forEach выполняет перебор всех элементов коллекции и применяет к каждому элементу указанную операцию (лямбда-выражение). Работает с массивами Array, списками List, множествами Set, ассоциативными массивами Map и другими типами коллекций, реализующими интерфейс Iterable.

Синтаксис

Для Iterable:

inline fun <T> Iterable<T>.forEach(action: (T) -> Unit): Unit

Для Array:

inline fun <T> Array<T>.forEach(action: (T) -> Unit): Unit

Для Map:

inline fun <K, V> Map<out K, V>.forEach(action: (Entry<K, V>) -> Unit): Unit

Для примитивных массивов:

inline fun IntArray.forEach(action: (Int) -> Unit): Unit inline fun DoubleArray.forEach(action: (Double) -> Unit): Unit inline fun FloatArray.forEach(action: (Float) -> Unit): Unit inline fun LongArray.forEach(action: (Long) -> Unit): Unit inline fun ShortArray.forEach(action: (Short) -> Unit): Unit inline fun ByteArray.forEach(action: (Byte) -> Unit): Unit inline fun CharArray.forEach(action: (Char) -> Unit): Unit inline fun BooleanArray.forEach(action: (Boolean) -> Unit): Unit

Пример

Перебор элементов списка List:

val numbers = listOf(1, 2, 3, 4, 5) numbers.forEach { element -> println("Element: $element") }

Результат выполнения кода:

Element: 1 Element: 2 Element: 3 Element: 4 Element: 5

Пример

Перебор элементов массива Array:

val chars = arrayOf('a', 'b', 'c', 'd', 'e') chars.forEach { char -> println(char.uppercaseChar()) }

Результат выполнения кода:

A B C D E

Пример

Перебор элементов ассоциативного массива Map:

val map = mapOf("a" to 1, "b" to 2, "c" to 3) map.forEach { (key, value) -> println("Key: $key, Value: $value") }

Результат выполнения кода:

Key: a, Value: 1 Key: b, Value: 2 Key: c, Value: 3

Пример

Использование ссылки на метод вместо лямбды:

val numbers = listOf(1, 2, 3, 4, 5) numbers.forEach(::println)

Результат выполнения кода:

1 2 3 4 5

Пример

Перебор элементов с использованием индекса через forEachIndexed:

val list = listOf("apple", "banana", "cherry") list.forEachIndexed { index, element -> println("Index: $index, Element: $element") }

Результат выполнения кода:

Index: 0, Element: apple Index: 1, Element: banana Index: 2, Element: cherry

Примечания

Функция forEach не возвращает результат (возвращает Unit) и предназначена исключительно для выполнения операций над элементами. Для преобразования элементов в новую коллекцию используйте функцию map.

В отличие от цикла for, функцию forEach нельзя прервать с помощью оператора break. Для досрочного прерывания перебора необходимо использовать исключения или другие подходы.

Смотрите также

  • функцию forEachIndexed,
    которая выполняет перебор с передачей индекса элемента
  • функцию onEach,
    которая выполняет операцию над каждым элементом и возвращает коллекцию
  • функцию map,
    которая преобразует элементы коллекции и возвращает новую коллекцию
  • функцию filter,
    которая фильтрует элементы коллекции по условию
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить