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

Функция transform

Функция transform применяется к коллекциям и позволяет преобразовывать элементы с возможностью изменения их количества. В параметр функции передается лямбда-функция, которая определяет логику преобразования каждого элемента. Функция возвращает новую коллекцию с преобразованными элементами.

Синтаксис

inline fun <T, R> Iterable<T>.transform( transform: (T) -> R ): List<R>
inline fun <T, R> Array<T>.transform( transform: (T) -> R ): List<R>

Пример

Преобразуем массив чисел, умножив каждый элемент на 2:

val numbers = arrayOf(1, 2, 3, 4, 5) val res = numbers.transform { it * 2 } println(res)

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

List<Int> [2, 4, 6, 8, 10]

Пример

Преобразуем список символов в их коды:

val chars = listOf('a', 'b', 'c', 'd', 'e') val res = chars.transform { it.code } println(res)

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

List<Int> [97, 98, 99, 100, 101]

Пример

Преобразуем массив чисел в строки с префиксом:

val numbers = arrayOf(1, 2, 3) val res = numbers.transform { "Number: $it" } println(res)

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

List<String> ['Number: 1', 'Number: 2', 'Number: 3']

Пример

Использование transform с изменением количества элементов (фильтрация отрицательных чисел):

val numbers = listOf(1, -2, 3, -4, 5) val res = numbers.transform { if (it > 0) it * 10 else null }.filterNotNull() println(res)

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

List<Int> [10, 30, 50]

Пример

Преобразование вложенных коллекций с помощью transform:

val matrix = listOf( listOf(1, 2, 3), listOf(4, 5, 6), listOf(7, 8, 9) ) val res = matrix.transform { row -> row.transform { it * it } } println(res)

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

List<List<Int>> [[1, 4, 9], [16, 25, 36], [49, 64, 81]]

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

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