当我在kotlin游乐场中运行以下内容时,它会输出错误,没有别的.以下代码有什么问题?这很简单,我将一个函数作为其中一个初始化参数传递给数据类,然后在数据类实例上调用此函数.不允许将函数传递给Kotlin中的数据类吗?
data class Person(val name: String,
val age: Int = 0,
val showMsg : (msg: String) -> Unit)
fun main(args: Array<String>) {
val p = Person(name="Bob", age=29, {msg -> println(msg)})
p.showMsg("Hello, world!")
}
Run Code Online (Sandbox Code Playgroud)
在其他答案中,解决方案的可行替代方法是在括号外传递最后一个参数lambda.
如果函数将另一个函数作为最后一个参数,则lambda表达式参数可以在带括号的参数列表之外传递.在这种情况下,您不需要为它使用命名参数:
val p = Person(name = "Bob", age = 29) { println(it) }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
298 次 |
| 最近记录: |