Teg*_*shi 3 intellij-idea kotlin
将java StringTokenizer转换为kotlin split时,我无法提供字符分隔符列表:
val delim : Array<Char> = arrayOf('(',')','{','}','[',/*many more...*/)
sourceExpr.split(delimiters=*delim,ignoreCase=false,limit=0)
Run Code Online (Sandbox Code Playgroud)
这里kotlin编译器出于某种原因无法消除split(vararg String,...)和之间的歧义split(vararg Char,...).问题:
问题不是消歧,而是不正确的类型.在Kotlin中,Array<Char>等同于Java Character[].这意味着当你使用时*delim,你实际上是在创建一个vararg Character(而不是vararg Char).
相反,您应该更喜欢原始特定的CharArray:
val delim: CharArray = charArrayOf('(', ')', '{', '}')
sourceExpr.split(delimiters = *delim, ignoreCase = false, limit = 0)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
36 次 |
| 最近记录: |