web-dev-qa-db-ja.com

kotlinで空の配列を作成する方法は?

現在Array(0, {i -> ""})を使用していますが、Array()などのより良い実装があるかどうかを知りたい

さらに、arrayOfNulls<String>(0) as Array<String>を使用している場合、コンパイラはこのキャストが成功しないことを警告します。ただし、Array(0, {i -> ""})内のデフォルトの実装です。私は何かを見逃していますか?

61
huangcd

後半(2015年6月)には、Kotlin標準ライブラリ関数があります

public fun <T> arrayOf(vararg t: T): Array<T>

したがって、文字列の空の配列を作成するには、次のように記述できます。

val emptyStringArray = arrayOf<String>()
82
Martian Odyssey

参考のために、emptyArrayもあります。例えば、

var arr = emptyArray<String>()

見る

29
pt2121

空またはnull?それが問題です!

nullsの配列を作成するには、単にarrayOfNulls<Type>(length)を使用します。


しかし、サイズlengthempty配列を生成するには、次を使用します。

val arr = Array(length) { emptyObject }

注:youmustemptyObjectを各タイプごとに適切に定義するnullsが不要です)。例Stringsの場合、emptyObjectには""を指定できます。そう:

val arr = Array(3) { "" }  // is equivalent for: arrayOf("","","")

ここの実例です。デフォルトでは、プログラムは2つのサンプル引数で実行されることに注意してください。

6
Mir-Ismaili

ヌル配列

var arrayString=Array<String?>(5){null}
var nullArray= arrayOfNulls<String>(5)
5
Ali hasan

空の配列を作成する2つの方法、ラムダを使用しない2番目の方法を見つけました。

var arr = Array (0, { i -> "" })
var arr2 = array<String>()

Kotlinのヌル文字列に関しては、これは許可されていません。文字列をnullにするにはString? typeを使用する必要があります。

1
Ciprian Khlud

上記のように、IntArray(size)またはFloatArray(size)を使用できます。

0
CoolMind

使用:

@JvmField val EMPTY_STRING_ARRAY = arrayOfNulls<String>(0)

Null値で初期化された文字列のサイズ0の配列を返します。

1。間違った:

@JvmField val EMPTY_STRING_ARRAY = emptyArray<String>()

arrayOfNulls<String>(0)を返します

2。間違った:

 @JvmField val EMPTY_STRING_ARRAY = arrayOf<String>()

文字列を含む配列を返します。

0
Alexander Savin