Arrays 在Kotlin中初始化交错阵列
我想在Kotlin中创建一个自定义数组Arrays 在Kotlin中初始化交错阵列,arrays,kotlin,Arrays,Kotlin,我想在Kotlin中创建一个自定义数组 class Node(val point: Point) { var neighbour : Array<Node?> = Array(4, {_ -> null}) var prev : Byte = -1 } 现在,在另一个类中,我尝试创建如下对象: class OtherClass{ var field: Array<Array<Node?>> = Array(size.x, {_
class Node(val point: Point) {
var neighbour : Array<Node?> = Array(4, {_ -> null})
var prev : Byte = -1
}
现在,在另一个类中,我尝试创建如下对象:
class OtherClass{
var field: Array<Array<Node?>> = Array(size.x, {_ -> Array(size.y, {_ -> null})})
}
所以基本上,我需要一个节点网格,所有节点都用null初始化。提供的大小为整数类型
我得到以下错误:
类型推断失败。预期类型不匹配:
必需:数组<数组<节点?>>
发现:Array
var field: Array<Array<Node?>> = Array(size.x, {_ -> Array(size.y, {_ -> null as Node?})})
好的,解决方案很简单:
var field: Array<Array<Node?>> = Array(size.x, {_ -> Array(size.y, {_ -> null as Node?})})
Kotlin的一个功能可能会使它更加优雅:
val field: Array<Array<Node?>> = Array(4) { arrayOfNulls<Node?>(4) }
或者,如果没有可选类型:
val field = Array(4) { arrayOfNulls<Node?>(4) }
我还需要指定节点吗?但是,作为最里面的类型。Kotlin有一个功能,可能会使它更优雅:
val field: Array<Array<Node?>> = Array(4) { arrayOfNulls<Node?>(4) }
或者,如果没有可选类型:
val field = Array(4) { arrayOfNulls<Node?>(4) }
我还需要指定节点吗?但是,作为最里面的类型