Kotlin-初始化自定义类对象的数组

时间:2018-08-07 17:52:07

标签: 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) {}

    ......
}

有什么建议吗?谢谢

3 个答案:

答案 0 :(得分:4)

您使用的Array constructor的大小和一个lambda会为每个索引创建一个元素,例如,您可以像这样使用它(假设AudioItem会使用Int参数):

var items: Array<AudioItem> = Array<AudioItem>(0) { index -> AudioItem(index) }

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

var items: Array<AudioItem> = arrayOf()

或者只是emptyArray

var items: Array<AudioItem> = emptyArray()

答案 1 :(得分:1)

如果你想用不同的已知对象初始化

        var myData = arrayOf(
           AudioItem("Tartak", "Song 1", 3.52),
           AudioItem("Topolsky", "Song 2", 5.7)
        )

答案 2 :(得分:0)

初始大小为0的最简单方法是使用emptyArray

var items = emptyArray<AudioItem>()