- Any?是所有可空类型的父类,例如String?,Int?;
- Any是所有非空类型的父类,例如String,Int;
- Any?是Any的父类,因为Any可以赋值给Any?,以下代码是成立的,但是反过来就不行,无论是Any?还是Any,都对应Java的Object;
var a: Any = Any()
var b: Any? = a
- Noting?是Noting的父类,Noting是最底层的类型;
- throw关键字返回类型是Noting,以下代码是成立的
fun calculate2(): Unit = throw Exception()
总结
Any?是最顶层的类型,Noting是最底层的类型。