一:Nothing
在Kotlin类型层次结构的最底层就是类型 Nothing
二:Unit与Nothing之间的区别:
Unit类型表达式计算结果的返回类型是Unit。
Nothing类型的表达式计算结果是永远不会返回的(跟Java 中的 void 相同)。
Nothing是没有实例的。您可以使用Nothing来表示“一个不存在的值”
如果一个函数的返回类型为Nothing,这意味着它永远不会返回(总是抛出异常)
Nothing? 它唯一允许的值是 null ,被用作任何可空类型的空引用。
Unit类型表达式计算结果返回值是Unit;Unit类型实现了与java中void一样的功能。
Java语言的void关键字(void是 无参数返回的 ) 他是关键字啊,不是类型
Unit不写可省略,默认也有,Unit代表 无参数返回的 忽略类型(Unit类型类)
当一个函数没有返回值的时候,我们用Unit来表示这个特征,而不是null,大多数时候我们不需要显示地返回Unit,
//Unit : 无返回值,可省略
// Kotlin 中Unit类型实现了与java中void一样的功能。
fun test11(): Unit {} //kotlin.Unit
fun test12() {} //kotlin.Unit
fun unitExample():kotlin.Unit {
println("test,Unit")
}
fun unitExample(){
println("test,Unit")
return kotlin.Unit
}
fun unitExample(){
println("test,Unit")
}
三:Any? 是整个类型体系的顶部, Nothing 是底部
fun main(args: Array<String>) {
fail("Error occurred")
}
fun fail(message:String):Nothing{
throw IllegalStateException(message)
}