我调用了两个函数letItPlay
,letItPlay2
它们之间唯一的区别是letItPlay2
的返回类型不存在,因此编译器会给出错误。我假设默认返回类型是 ,Unit
而letItPlay
的返回类型也是 ,Unit
因此我也假设两个函数的返回类型相同。但编译器会给出错误。为什么?
fun letItPlay(where: String = "Home",
whn: Long,
how: Float = 3.4f,
what: Any,
time: Int = 1,
quality: Double): Unit = run {
return Unit
}
fun letItPlay2(where: String = "Home", // Error: Return type 'Nothing' needs to be specified explicitly.
whn: Long,
how: Float = 3.4f,
what: Any,
time: Int = 1,
quality: Double) = run {
return Unit // Error: Return type mismatch: expected 'kotlin. Nothing', actual 'kotlin. Unit'.
}
注意:我知道这两个函数由于内联函数而很奇怪,但是好吧,那么为什么两者都会出错而只有一个会出错呢?