Arrays 如何在kotlin中创建空数组?

Arrays 如何在kotlin中创建空数组?,arrays,kotlin,Arrays,Kotlin,我目前正在使用Array(0,{I->“”}),我想知道是否有更好的实现,例如Array() 另外,如果我使用arrayOfNulls(0)作为数组,编译器将提醒我此转换永远不会成功。但是它是数组(0,{i->'})中的默认实现。我遗漏了什么吗?我找到了两种创建空数组的方法,第二种方法没有lambda: var arr = Array (0, { i -> "" }) var arr2 = array<String>() var-arr=Array(0,{i->“”) var

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


另外,如果我使用
arrayOfNulls(0)作为数组
,编译器将提醒我此转换永远不会成功。但是它是
数组(0,{i->'})
中的默认实现。我遗漏了什么吗?

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

var arr = Array (0, { i -> "" })
var arr2 = array<String>()
var-arr=Array(0,{i->“”)
var arr2=数组()
关于Kotlin的空字符串,这是不允许的。你必须使用字符串吗?键入以允许字符串为空。

截至2015年6月底,有Kotlin标准库函数

public fun <T> arrayOf(vararg t: T): Array<T>
public-fun数组of(vararg t:t):数组
因此,要创建一个空字符串数组,您可以编写

val emptyStringArray = arrayOf<String>()
val emptyStringArray=arrayOf()

仅供参考,还有
emptyArray
。比如说,

var arr = emptyArray<String>()
var arr=emptyArray()

空数组

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

@JvmField val EMPTY_STRING_ARRAY = arrayOfNulls<String>(0)
@JvmField val EMPTY_STRING_ARRAY = emptyArray<String>()
 @JvmField val EMPTY_STRING_ARRAY = arrayOf<String>()
@JvmField val EMPTY_STRING_ARRAY=arrayOfNulls(0)
它返回一个0大小的字符串数组,用空值初始化

1。错误:

@JvmField val EMPTY_STRING_ARRAY = arrayOfNulls<String>(0)
@JvmField val EMPTY_STRING_ARRAY = emptyArray<String>()
 @JvmField val EMPTY_STRING_ARRAY = arrayOf<String>()
@JvmField val EMPTY_STRING_ARRAY=emptyArray()
它返回
arrayOfNulls(0)

2。错误:

@JvmField val EMPTY_STRING_ARRAY = arrayOfNulls<String>(0)
@JvmField val EMPTY_STRING_ARRAY = emptyArray<String>()
 @JvmField val EMPTY_STRING_ARRAY = arrayOf<String>()
@JvmField val EMPTY_STRING_ARRAY=arrayOf()
它返回一个包含字符串的数组。

为空或
null
?这就是问题所在! 要创建
null
s数组,只需使用
arrayOfNulls(长度)


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

val arr=数组(长度){emptyObject}
请注意,必须根据每种数据类型正确定义
emptyObject
(因为您不希望
null
s)。例如。对于
String
s,
emptyObject
可以是
。因此:

val arr=Array(3){“}//等价于:arrayOf(“,”,“)


这是一个活生生的例子。请注意,默认情况下,程序使用两个示例参数运行。

如上所述,您可以使用
IntArray(size)
FloatArray(size)
初始化数组和赋值的最简单方法:

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

-其中一条评论建议警告是一个错误,那么像
IntArray
这样的类型化数组呢?现在我正在使用
arrayOf().toIntArray()
,有没有更好的方法?这些方法的目的是什么?因为我们无法分配大小,所以无法分配值或获取。数组[0]抛出
java.lang.ArrayIndexOutofBounds异常:
异常。如果类型是
T
而不是
String
?@csharpfolk,您可以使用intArrayOf()初始化空IntArrayHow在kotlin的字符串数组中添加项?arr[0]抛出
java.lang.ArrayIndexOutOfBoundsException:
我们如何使用它?它是一个空数组,不能向其中添加/读取任何内容。它可能看起来没用,但有时必须将数组传递到某个位置,这样可以轻松构造空数组。这比Martian Odyssey的答案要好,因为在数据类中使用arrayOf初始化数组时,arrayOf会导致java.util.concurrent.ExecutionException,而emptyArray()不是。它的长度是不可变的
0
!因此,它非常有用,只用于非常特殊的用途,即您不需要存储任何数据(只需要类型)。使用
Array(length){“}
包含所需的
长度。请参阅下面的详细信息。这是一个空数组,而不是所讨论的空字符串。