Edu*_*ona 13 java arrays object kotlin
我想在Kotlin中创建一个具有特定数量元素的对象数组,问题是我现在没有声明中每个对象初始化的当前值,我试过:
var miArreglo = Array<Medico>(20, {null})
Run Code Online (Sandbox Code Playgroud)
在Java中,我有这个,正是我想要的,但我需要它在Kotlin中.:
Medico[] medicos = new Medico[20];
for(int i = 0 ; i < medicos.length; i++){
medicos[i] = new Medico();
}
Run Code Online (Sandbox Code Playgroud)
与上述Java代码相同的Kotlink是什么?
另外,我试过:
var misDoctores = arrayOfNulls<medic>(20)
for(i in misDoctores ){
i = medic()
}
Run Code Online (Sandbox Code Playgroud)
但我在Android Studio上给我看了一条消息:"Val无法重新分配"
cre*_*not 16
与此相当的Kotlin可能是这样的:
val miArreglo = Array(20) { Medico() }
Run Code Online (Sandbox Code Playgroud)
但我强烈建议你在Kotlin中使用Lists,因为它们更灵活.在你的情况下,List不需要是可变的,因此我会建议这样的事情:
val miArreglo = List(20) { Medico() }
Run Code Online (Sandbox Code Playgroud)
上面的两个片段可以很容易地解释.第一个参数显然是Java中的Array或List大小,第二个参数是lambda函数,它是init { ... }函数.该init { ... }函数可以包含某种操作,最后一个值将始终是返回类型和返回值,即在这种情况下是一个Medico对象.
我也选择使用a val而不是var因为List而且Array不应该重新分配.如果您想编辑您的List,请MutableList改用.
val miArreglo = MutableList(20) { Medico() }
Run Code Online (Sandbox Code Playgroud)
您可以编辑此列表,例如:
miArreglo.add(Medico())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15021 次 |
| 最近记录: |