【发布时间】:2020-12-30 13:49:03
【问题描述】:
有人知道我在这里做错了什么吗?
// ...
val alphabet = ('a'..'z').toList()
val str = "testing"
val arr = str.split("")
for (char in arr) {
var i = alphabet.indexOf(char) // Throws Error!
// ...
}
indexOf 方法导致 "Error:(10, 26) Kotlin: Type inference failed。类型参数 T 的值应在输入类型(参数类型、接收者类型或预期类型)中提及。尝试显式指定它 。”
我尝试过“var i: Int = alphabet.indexOf(char)”和“alphabet.indexOf(char) as Int”。同样的结果...
这里有什么问题?
【问题讨论】:
-
您可以只调用 toList() 到字符串,甚至可以迭代原始字符串,而不是使用空字符串拆分,因为 String 本身实现了 CharSequence,因此应该可以使用 Char 数据类型进行迭代。
for (char in str) {} -
太棒了。非常感谢。
标签: kotlin