什么是Java的String 的Kotlin等价物?
我看到Kotlin具有ByteArray, ShortArray, IntArray, CharArray, DoubleArray, FloatArray
,相当于ByteArray, ShortArray, IntArray, CharArray, DoubleArray, FloatArray
中的byte[], short[], int[],char[], double[], float[]
。
现在我想知道,是否有任何相当于Java的String[]
StringArray
?
String
没有特殊情况,因为String
是JVM上的普通引用类型,与Java基本类型( int
, double
,…)相比 – 将它们存储在引用Array<T>
需要将它们装入像Integer
和Double
。 Kotlin中IntArray
这样的专门数组的目的是存储非盒装原语,摆脱装箱和开箱开销(与Java int[]
而不是Integer[]
)。
您可以使用Array<String>
(和Array<String?>
作为可空),这相当于Java中的String[]
:
val stringsOrNulls = arrayOfNulls<String>(10) // returns Array<String?> val someStrings = Array<String>(5) { "it = $it" } val otherStrings = arrayOf("a", "b", "c")
另请参阅: 语言参考中的数组
这些类型是在那里,所以你可以创建基元的数组,而不是盒装类型。 由于String不是Java中的原语,因此您可以在Kotlin中使用Array<String>
作为Java String[]
的等效项。
对于Strings
和其他类型,您只需使用Array<*>
。 IntArray
和其他存在的原因是为了防止自动装箱。
所以int[]
与IntArray
,其中Integer[]
与Array<Int>
。
你可以使用arrayOf()
函数:
val literals = arrayOf("str1", "str2", "str3")