Kotlin - 为自定义类对象初始化一个数组

Wil*_*red 3 arrays kotlin

我是 Kotlin 的初学者。我想初始化一个空的自定义类数组。大多数 Kotlin 教程都关注原始类型 Array,而不是自定义类 Array。

我尝试了以下方法,但没有成功。

class MyAudioPlayer {

    // Error
    // Type mismatch: inferred type is Unit but AudioItem was expected.    
    var items: Array<AudioItem> = Array<AudioItem>(0) {}

    ......
}
Run Code Online (Sandbox Code Playgroud)

有什么建议?谢谢

zsm*_*b13 9

您正在使用的Array构造函数接受一个大小和一个为每个索引创建一个元素的 lambda,例如,您可以像这样使用它(假装AudioItem接受一个Int参数):

var items: Array<AudioItem> = Array<AudioItem>(0) { index -> AudioItem(index) }
Run Code Online (Sandbox Code Playgroud)

但是要创建一个空的Array,您可以使用arrayOf

var items: Array<AudioItem> = arrayOf()
Run Code Online (Sandbox Code Playgroud)

或者干脆emptyArray

var items: Array<AudioItem> = emptyArray()
Run Code Online (Sandbox Code Playgroud)