我Array(0, {i -> ""})
目前正在使用,我想知道是否有更好的实现,例如Array()
另外,如果使用arrayOfNulls<String>(0) as Array<String>
,编译器将警告我该强制转换永远不会成功。但这是内部的默认实现Array(0, {i -> ""})
。我想念什么吗?
Answers:
截止到2015年6月,有Kotlin标准库功能
public fun <T> arrayOf(vararg t: T): Array<T>
因此,要创建一个空字符串数组,您可以编写
val emptyStringArray = arrayOf<String>()
IntArray
呢?现在我正在使用arrayOf<Int>().toIntArray()
,还有什么更好的方法吗?
java.lang.ArrayIndexOutOfBoundsException:
异常。
T
不是String
怎么办?
java.lang.ArrayIndexOutOfBoundsException:
如何使用?
null
?这就是问题所在!要创建的数组null
,只需使用arrayOfNulls<Type>(length)
。
但是要生成一个空的size数组length
,请使用:
val arr = Array(length) { emptyObject }
请注意,您必须emptyObject
为每种数据类型正确定义一个(因为您不希望这样null
)。例如 对于String
,emptyObject
可以是""
。所以:
val arr = Array(3) { "" } // is equivalent for: arrayOf("","","")
这是一个生动的例子。请注意,默认情况下,该程序使用两个示例参数运行。
空数组
var arrayString=Array<String?>(5){null}
var nullArray= arrayOfNulls<String>(5)
我发现了两种创建空数组的方法,第二种没有lambda的方法:
var arr = Array (0, { i -> "" })
var arr2 = array<String>()
关于Kotlin的空字符串,这是不允许的。您必须使用String吗?键入以允许字符串为空。