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

在Kotlin中,我声明了一个像这样的List<String>

 private val items = listOf<String> { "String1", "String2", "String3" } 

编译器给我这个错误:

类型不匹配。

必需:字符串

找到:() – >字符串

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

PS对于Kotlin来说很新,所以请问我明显的问题。

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

找到:() – >字符串

相反,只需使用这样的括号:

 listOf("String1", "String2") 

一些信息:

当Kotlin作为最后一个参数传递时,允许你在()之后传递函数。 如果该函数是唯一的参数,那么括号可以被忽略。 因此代码是有效的,但只是不匹配函数参数类型。

尝试这个:

 private val items = listOf("String1", "String2", "String3")