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){“}
包含所需的长度。请参阅下面的详细信息。这是一个空数组,而不是所讨论的空字符串。