что делает (x..x) .map в kotlin android

Посмотрел на некоторые примеры kotlin в Интернете и увидел следующее, где я не могу понять, что именно он делает.

(0..6).map{ inflater.inflate(R.layout.test, container) }

Я знаю, что это диапазон, который раздувает R.layout.test в контейнер, но в чем смысл «.map»?

это просто другой способ написать for (i in 0..6) ?

В связанном коде это просто другой и не совсем идиоматический способ повторить некоторые действия.

Вместо функции map можно использовать следующие подходы, если результат преобразования не будет использован:

 // for loop for (n in 0..6) inflater.inflate(R.layout.test, container) // forEach extension (0..6).forEach { inflater.inflate(R.layout.test, container) } // repeat function repeat(7) { inflater.inflate(R.layout.test, container) } 

map преобразует входной сигнал в выходной файл. Поскольку Котлин может вывести аргумент, если он будет единственным, он будет называться. Таким образом, ваш код эквивалентен этому:

 (0..6).map{ it => inflater.inflate(R.layout.test, container) } 

Вы можете видеть, что вы не используете it аргумент в любом случае

Поэтому после этого у вас будет список из 7 просмотров (от 0 до 6), завышенный от R.layout.test

Более подробную информацию о map можно найти в документации

Это выражение Lambda . Он просто раздувает R.layout.test и добавляет это представление в контейнер . Пример, на который вы ссылаетесь, представляет собой GridView и должен добавить это представление 7 раз в контейнер, то есть (1..6) здесь.