Arrays 在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, {_

我想在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, {_ -> 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) }
我还需要指定节点吗?但是,作为最里面的类型