Arrays Kotlin中的展平阵列
我有一个二维的节点数组,我想使用Kotlin数组的展平函数将其展平为所有节点的单个数组Arrays Kotlin中的展平阵列,arrays,multidimensional-array,kotlin,flatten,Arrays,Multidimensional Array,Kotlin,Flatten,我有一个二维的节点数组,我想使用Kotlin数组的展平函数将其展平为所有节点的单个数组 val nodes = kotlin.Array(width, { width -> kotlin.Array(height, { height -> Node(width, height) }) }) 然后我尝试调用2D数组上的展平函数 nodes.flatten() 但我得到了一个错误:类型不匹配:推断的类型是数组,但应为数组。还有其他方法吗?Kotlin中的数组是一个数组
val nodes = kotlin.Array(width, { width ->
kotlin.Array(height, { height -> Node(width, height) })
})
然后我尝试调用2D数组上的展平函数
nodes.flatten()
但我得到了一个错误:类型不匹配:推断的类型是数组,但应为数组
。还有其他方法吗?Kotlin中的数组是一个数组
在Kotlin 1.1发布之前,您可以维护自己版本的flatten
:
/**
*返回给定数组中所有数组中所有元素的单个列表。
*/
有趣的数组。展平():列表{
val result=ArrayList(sumBy{it.size})
对于(本文件中的元素){
result.addAll(元素)
}
返回结果
}
使用更通用的flatMap
:
nodes.flatMap {it.asIterable()}
更精确地指定错误,使用原始错误消息。添加记录的实际错误消息后,相同的展平方法适用于列表。您保存我。。。。
nodes.flatMap {it.asIterable()}