web-dev-qa-db-ja.com

初期化と特定の要素数なしでKotlinでオブジェクトの配列を作成するにはどうすればよいですか?

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は再割り当てできません」

13
Eduardo Corona

これに相当するKotlinは次のようになります。

val miArreglo = Array(20) { Medico() }

しかし、Kotlinでは Lists を使用することを強くお勧めします。あなたの場合、Listは変更可能である必要はないので、次のようなアドバイスをします。

val miArreglo = List(20) { Medico() }

上記の2つのスニペットは簡単に説明できます。最初のパラメーターは明らかにArrayまたはListサイズJava 2番目はラムダ関数で、init { ... } 関数。 init { ... }関数は何らかの操作で構成でき、最後の値は常に戻り値の型と戻り値、つまりこの場合はMedicoオブジェクトになります。

また、valの代わりにvarListを再割り当てすべきではないため、Arrayを使用することを選択しました。 Listを編集する場合は、代わりにMutableListを使用してください。

val miArreglo = MutableList(20) { Medico() }

次に、このリストを編集できます。例:

miArreglo.add(Medico())