我想我不明白Unit
和{}
之间的区别是什么,例如当有趣地使用回调时。
fun x(
callback: () -> Unit = {} // fine
)
fun x(
callback: () -> Unit = Unit // not fine
)
答案 0 :(得分:6)
{}
是一个返回Unit
的lambda,它是() -> Unit
的有效值。
Unit
是一个对象,不是() -> Unit
的有效值。
答案 1 :(得分:4)
Unit
是一个没有方法或属性的对象。它只是任何函数的默认返回值。如果您的函数未指定返回类型,则隐式返回Unit
。
{}
是一个不带参数的lambda函数,由于是默认参数,因此它返回Unit
。