代码之家  ›  专栏  ›  技术社区  ›  cluster1

Kotlin:“类型推断失败”

  •  0
  • cluster1  · 技术社区  · 6 年前

    有人知道我做错了什么吗?

    // ...
    val alphabet = ('a'..'z').toList()
    val str = "testing"
    val arr = str.split("")
    
    for (char in arr) {
        var i = alphabet.indexOf(char) // Throws Error!
        //    ...
    }
    

    " ."

    我试过“var I:Int=字母索引(char)“和”字母表索引(char)作为Int”。同样的结果。。。

    1 回复  |  直到 6 年前
        1
  •  2
  •   CryptoFool Sachithra Dilshan    6 年前

    我相信你的问题是你认为 char 包含 Char indexOf 接受 值,然后在字符列表中查找该字符的位置( List<Char>

    但是 str.split() List<String> ,不是 列表<Char> ,等等 是一个 String . 所以你在问 索引 方法来告诉您 字符串 在字符列表中( 列表<Char> ). 这没道理。这就是问题的根源。我不确定这到底是如何转化为Kotlin编译器的错误。

    var i = alphabet.indexOf("c") // Throws Error!
    

    但是编译器很喜欢这一行:

    var i = alphabet.indexOf('c') // No Error!!!