(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将输入转换为输出。 因为Kotlin可以推断出这个论点,如果它是唯一的话,它就会被称为it 。 所以你的代码是这样的:

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

反正你可以看到你并没有使用it

所以在这之后,你将有一个从R.layout.test的7个视图(从0到6)的列表

你可以在文档中找到关于map更多信息

这是一个Lambda表达式。 它只是膨胀R.layout.test并将此视图添加到容器 。 你引用的例子是一个GridView ,需要在容器中添加这个视图7次,这就是(1..6)在这里做的事情。