单位与{}之间的差异

时间:2020-10-23 08:45:02

标签: kotlin

我想我不明白Unit{}之间的区别是什么,例如当有趣地使用回调时。

fun x(
    callback: () -> Unit = {} // fine
)

fun x(
    callback: () -> Unit = Unit // not fine
)

2 个答案:

答案 0 :(得分:6)

{}是一个返回Unit的lambda,它是() -> Unit的有效值。

Unit是一个对象,不是() -> Unit的有效值。

答案 1 :(得分:4)

Unit是一个没有方法或属性的对象。它只是任何函数的默认返回值。如果您的函数未指定返回类型,则隐式返回Unit

{}是一个不带参数的lambda函数,由于是默认参数,因此它返回Unit