如何在科特林中创建一个空数组?

How to create an empty array in kotlin?

我目前正在使用Array(0, {i -> ""}),我想知道是否有更好的实现,例如Array()

此外,如果我使用 arrayOfNulls<String>(0) as Array<String>,编译器会提醒我此转换永远不会成功。但它是 Array(0, {i -> ""}) 内的默认实现。我错过了什么吗?

我找到了两种创建空数组的方法,第二种方法没有 lambda:

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

关于Kotlin 的空字符串,这是不允许的。您必须使用 String? 类型来允许字符串为空。

最近(2015 年 6 月)有 Kotlin 标准库函数

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

因此,要创建一个空的字符串数组,您可以编写

val emptyStringArray = arrayOf<String>()

仅供参考,还有emptyArray。例如,

var arr = emptyArray<String>()

空数组

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

使用:

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

它returns 一个 0 大小的字符串数组,用空值初始化。

1.错误:

@JvmField val EMPTY_STRING_ARRAY = emptyArray<String>()

它returnsarrayOfNulls<String>(0)

2。错误:

 @JvmField val EMPTY_STRING_ARRAY = arrayOf<String>()

它 returns 一个包含字符串的数组。

空还是null?就是这个问题!

要创建一个 null 的数组,只需使用 arrayOfNulls<Type>(length)


但要生成大小为 lengthEMPTY 数组,请使用:

val arr = Array(length) { emptyObject }

请注意必须为每个数据类型正确定义emptyObject(因为您不希望nulls)。例如对于 Strings,emptyObject 可以是 ""。所以:

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

Here 是一个实例。请注意,程序默认使用两个示例参数运行。

如上所述,您可以使用IntArray(size)FloatArray(size)

初始化数组和赋值的最简单方法:

val myArray: Array<String> = Array(2) { "" }
    myArray[0] = "Java"
    myArray[1] = "Kotlin"