我目前正在使用 Array(0, {i -> ""}),我想知道是否有更好的实现,比如 Array()
Array(0, {i -> ""})
Array()
另外,如果我使用 arrayOfNulls<String>(0) as Array<String>,编译器会提醒我这个强制转换永远不会成功。但它是 Array(0, {i -> ""})内部的默认实现。我错过什么了吗?
arrayOfNulls<String>(0) as Array<String>
我找到了两种创建空数组的方法,第二种没有 lambda 的方法:
var arr = Array (0, { i -> "" }) var arr2 = array<String>()
关于 Kotlin 的 null 字符串,这是不允许的。您必须使用 绳子?类型来允许字符串为 null。
As of late (June 2015) there is the Kotlin standard library function
public fun <T> arrayOf(vararg t: T): Array<T>
因此,要创建一个空的 String 数组,您可以编写
val emptyStringArray = arrayOf<String>()
仅供参考,还有 emptyArray。例如,
emptyArray
var arr = emptyArray<String>()
你看
空数组
var arrayString=Array<String?>(5){null} var nullArray= arrayOfNulls<String>(5)
用途:
@JvmField val EMPTY_STRING_ARRAY = arrayOfNulls<String>(0)
它返回一个0大小的 String 数组,用空值初始化。
错:
@JvmField val EMPTY_STRING_ARRAY = emptyArray<String>()
It returns arrayOfNulls<String>(0)
arrayOfNulls<String>(0)
2. 错误:
@JvmField val EMPTY_STRING_ARRAY = arrayOf<String>()
它返回一个包含 String 的数组。
null
要创建一个 null数组,只需使用 arrayOfNulls<Type>(length)。
arrayOfNulls<Type>(length)
但要生成大小为 length的 空的数组,请使用:
length
val arr = Array(length) { emptyObject }
请注意,每个数据类型都有适当的 您 < strong > must 定义一个 emptyObject(因为您不希望使用 null)。例如,对于 String,emptyObject可以是 ""。所以:
emptyObject
String
""
val arr = Array(3) { "" } // is equivalent for: arrayOf("","","")
这里 是 活生生的例子。请注意,默认情况下,程序运行时带有两个示例参数。
如上所述,您可以使用 IntArray(size)或 FloatArray(size)。
IntArray(size)
FloatArray(size)
初始化数组和赋值的最简单方法:
val myArray: Array<String> = Array(2) { "" } myArray[0] = "Java" myArray[1] = "Kotlin"