gpt4 book ai didi

function - 如何将函数传递给 Kotlin 中的数据类?

转载 作者:行者123 更新时间:2023-12-02 13:01:10 26 4
gpt4 key购买 nike

当我在 kotlin playground 中运行以下命令时,它打印错误,没有别的。以下代码有什么问题?这很简单,我将一个函数作为它的初始化参数之一传递到数据类中,然后在数据类实例上调用这个函数。不允许将函数传递给 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!")
}

最佳答案

其他答案中解决方案的可行替代方案是将最后一个参数 lambda 传递到括号外。

如果一个函数将另一个函数作为最后一个参数,lambda 表达式参数可以在括号参数列表之外传递。在这种情况下,您不需要为其使用命名参数:

val p = Person(name = "Bob", age = 29) { println(it) }

关于function - 如何将函数传递给 Kotlin 中的数据类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49226137/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com