chars阵列上Kotlin扩散算子的行为

chars阵列上Kotlin扩散算子的行为,kotlin,syntax-error,Kotlin,Syntax Error,我已经使用Kotlin一段时间了,但我刚刚发现,当我想对字符数组使用spread运算符并将其传递给split函数时,它不起作用 fun main(){ val strings=arrayOf(“一”、“二”) val stringSplit=”“.split(“一”、“二”) val stringsSplit=“.split(*字符串) val chars=arrayOf('1','2') val charSplit=”“.split('1','2') val charsSplit=“.spli

我已经使用Kotlin一段时间了,但我刚刚发现,当我想对字符数组使用spread运算符并将其传递给
split
函数时,它不起作用

fun main(){
val strings=arrayOf(“一”、“二”)
val stringSplit=”“.split(“一”、“二”)
val stringsSplit=“.split(*字符串)
val chars=arrayOf('1','2')
val charSplit=”“.split('1','2')
val charsSplit=“.split(*chars)//这是不可能的
}
产生以下错误(在生成期间相同,在正式的try kotlin repl中相同)


我做错了什么吗?

之所以会发生这种情况,是因为在Kotlin
中,数组
在Java中等于
Character[]
,而在Java中等于
char[]

要对字符数组使用扩展运算符并将其传递给
vararg Char
参数,需要使用
CharArray
,它在Java中等于
Char[]

fun main(){
val strings=arrayOf(“一”、“二”)
val stringSplit=”“.split(“一”、“二”)
val stringsSplit=“.split(*字符串)
val chars=charArrayOf('1','2')
val charSplit=”“.split('1','2')
val charsSplit=“.split(*chars)//这是不可能的
}

之所以会发生这种情况,是因为在Kotlin中,数组在Java中等于字符[],而不是在Java中等于字符[]

要对字符数组使用扩展运算符并将其传递给
vararg Char
参数,需要使用
CharArray
,它在Java中等于
Char[]

fun main(){
val strings=arrayOf(“一”、“二”)
val stringSplit=”“.split(“一”、“二”)
val stringsSplit=“.split(*字符串)
val chars=charArrayOf('1','2')
val charSplit=”“.split('1','2')
val charsSplit=“.split(*chars)//这是不可能的
}

Hah,我原以为会是这样的,但我还是有点惊讶,因为
split
是Kotlin函数,我想类型推断会处理这个问题。谢谢。哈,我原以为会是这样的,但我还是有点惊讶,
split
是Kotlin函数,我想类型推断会处理这个问题。谢谢