String.split未在Kotlin中编译?
快把我逼疯了 我有以下简单的代码片段:String.split未在Kotlin中编译?,string,kotlin,split,compiler-errors,String,Kotlin,Split,Compiler Errors,快把我逼疯了 我有以下简单的代码片段: val text = "hello" val splitStr = "l" text.split(splitStr, false, 1) 但是第三行有一个编译错误。它说: None of the functions can be called with the arguments supplied. 尽管Strings.kt中有一个split方法,它接受以下参数: public fun CharSequence.split(vararg delimit
val text = "hello"
val splitStr = "l"
text.split(splitStr, false, 1)
但是第三行有一个编译错误。它说:
None of the functions can be called with the arguments supplied.
尽管Strings.kt中有一个split方法,它接受以下参数:
public fun CharSequence.split(vararg delimiters: String, ignoreCase: Boolean = false, limit: Int = 0): List<String> =
rangesDelimitedBy(delimiters, ignoreCase = ignoreCase, limit = limit).asIterable().map { substring(it) }
public-fun-CharSequence.split(vararg分隔符:String,ignoreCase:Boolean=false,limit:Int=0):列表=
rangesDelimitedBy(分隔符,ignoreCase=ignoreCase,limit=limit).asIterable().map{substring(it)}
你知道这里有什么问题吗?如果我省略了编译器中的最后两个参数,但我应该能够像现在这样传递它们…啊,你必须命名这些参数 这很好:
val count = text.split(skill, ignoreCase = false, limit = 1)
奇怪的是,当我有自己编写的带有默认值的命名参数的方法时,我在调用方法时不必指定名称。啊,你必须命名参数 这很好:
val count = text.split(skill, ignoreCase = false, limit = 1)
奇怪的是,当我有自己编写的带有默认值的命名参数的方法时,调用该方法时不必指定名称。通常,vararg参数是函数签名中的最后一个参数,除非有可选参数。这是他们结合的一个很有趣的例子。因为vararg可能有多个值,所以有必要显式命名可选参数 例如,可以拆分多个分隔符字符串:
val secondSplitStr = "e"
val result = text.split(splitStr, secondSplitStr, ignoreCase = false, limit = 1)
请注意limit=1,它可能不会提供您想要的效果,因为默认值为0。通常,vararg参数是函数签名中的最后一个参数,除非有可选参数。这是他们结合的一个很有趣的例子。因为vararg可能有多个值,所以有必要显式命名可选参数 例如,可以拆分多个分隔符字符串:
val secondSplitStr = "e"
val result = text.split(splitStr, secondSplitStr, ignoreCase = false, limit = 1)
请注意该限制=1,它可能不会提供您想要的效果,因为默认值为0。可能重复的可能重复的