Kotlin - 类型不匹配:必需:字符串,找到:() - >字符串

Dan*_*ele 1 string type-mismatch kotlin

在Kotlin我宣布List<String>这样:

private val items = listOf<String> {
        "String1",
        "String2",
        "String3"
    }
Run Code Online (Sandbox Code Playgroud)

编译器给我这个错误:

类型不匹配.

必需:字符串

找到:() - >字符串

这是什么意思?我如何解决它?

PS对Kotlin来说很新,所以请耐心等待一些明显的问题.

s1m*_*nw1 7

您传递了附带的参数,{}其中引入了函数文字(lambda),这就是编译器找到函数类型的原因

找到:() - >字符串

而只是使用这样的括号:

listOf("String1", "String2")
Run Code Online (Sandbox Code Playgroud)

一些信息:

Kotlin允许您()在作为最后一个参数传递后传递函数.如果函数是示例中唯一的参数,则可以省略括号.因此代码有效但只是与函数参数类型不匹配.