(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)在这里做的事情。