我是Kotlin的初学者。我想初始化一个空的自定义类数组。大多数Kotlin教程都将重点放在基本类型Array上,而不是在自定义类Array上。
我尝试了以下操作,但无法正常工作。
class MyAudioPlayer {
// Error
// Type mismatch: inferred type is Unit but AudioItem was expected.
var items: Array<AudioItem> = Array<AudioItem>(0) {}
......
}
有什么建议吗?谢谢
答案 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>()