forEach里面forEach在Kotlin
在Kotlin中,如果要使用forEach
的元素,则可以使用it
关键字。 所以现在我想知道如果我有一个forEach
里面forEach
,我该怎么做:
list.forEach { val parent = it it.forEach { // `it` now become the element of the parent. } }
我认为只为命名约定定义一个新的variables是如此愚蠢。 有任何其他的解决方案,这个问题?
it
只是所有单参数闭包中的默认参数名称。 你可以自己指定参数名称:
collection.forEach { customName -> ... }
除了Artyom上面的正确答案之外,我想说如果你只关心它的内部,你可以简单的忽略名字重载。
看到:
>> var a = "abc" >> a?.let { it[2]?.let { it } } c
返回的值是最内在的“它”。 “it”在那里指的是最外面的“it [2]”,即字符串“abc”中的字符“c”。
现在,如果你想访问最外层的“it”,你应该把它命名为Artyom所说的其他东西。 下面的代码等同于上面的代码,但是它允许你从最外面的’let’块的外部’let’块引用“outerIt”,如果这就是你所需要的。
>> var a = "abc" >> a?.let { outerIt -> outerIt[2]?.let { it } } c
这样,如果你需要参考最外面的,你可以。 例如:
>> var a = "abc" >> a?.let { outerIt -> outerIt[2]?.let { "${outerIt[1]} $it" } } bc
如果你不需要引用最外层的“它”,我个人更喜欢第一个构造,因为它更加简洁。