![](/img/trans.png)
[英]how can i create an array of objects filled by the user and view the array elements?
[英]How can I create an array of objects in Kotlin without initialization and a specific number of elements?
我想在 Kotlin 中創建一個具有特定數量元素的對象數組,問題是我現在沒有聲明中每個對象的初始化當前值,我嘗試過:
var miArreglo = Array<Medico>(20, {null})
在 Java 中,我有這個,這正是我想要的,但我在 Kotlin 中需要它。 :
Medico[] medicos = new Medico[20];
for(int i = 0 ; i < medicos.length; i++){
medicos[i] = new Medico();
}
上面 Java 代碼的 Kotlink 等價物是什么?
另外,我嘗試過:
var misDoctores = arrayOfNulls<medic>(20)
for(i in misDoctores ){
i = medic()
}
但我 Android Studio 向我顯示消息:“Val 無法重新分配”
Kotlin 的等價物可能是這樣的:
val miArreglo = Array(20) { Medico() }
但我強烈建議您在 Kotlin 中使用Lists ,因為它們更加靈活。 在您的情況下, List
不需要是可變的,因此我會建議如下:
val miArreglo = List(20) { Medico() }
上面的兩個片段很容易解釋。 第一個參數顯然是 Java 中的Array
或List
大小,第二個參數是 lambda 函數,即init { ... }
函數。 init { ... }
函數可以由某種操作組成,最后一個值將始終是返回類型和返回值,即在這種情況下是一個Medico
對象。
我還選擇使用val
而不是var
因為不應重新分配List
和Array
。 如果您想編輯您的List
,請改用MutableList
。
val miArreglo = MutableList(20) { Medico() }
然后您可以編輯此列表,例如:
miArreglo.add(Medico())
如果你想要可空對象的列表,我們可以做這樣的事情
val fragment : Array<Fragment?> = Array(4) { null }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.