ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## [kotlin.Unit](https://www.w3cschool.cn/doc_kotlin/kotlin-api-latest-jvm-stdlib-kotlin--unit-index.html) ![](https://box.kancloud.cn/470d738eaacc137cf0d846490a870949_132x137.png) Kotlin也是面向表达式的语言。在Kotlin中所有控制流语句都是表达式(除了变量赋值、异常等)。 Kotlin中的 Unit 类型实现了与Java中的 void 一样的功能。**不同的是,当一个函数没有返回值的时候,我们用 Unit 来表示这个特征,而不是 null 。** **大多数时候,我们并不需要显式地返回 Unit(因为编译器会隐式地加上return Unit) ,或者声明一个函数的返回类型为 Unit 。编译器会推断出它**。 Unit源码如下 ~~~ public object Unit { override fun toString() = "kotlin.Unit" } ~~~ 示例 ~~~ fun main(args: Array<String>) { val ur1=unitReturn1() val ur2=unitReturn2() val ur3=unitReturn3() val ur4=unitReturn4() println(ur1)//kotlin.Unit println(ur2)//kotlin.Unit println(ur3)//kotlin.Unit println(ur4)//kotlin.Unit } //下面的几种方法是等价的 fun unitReturn1() { } fun unitReturn2() { return Unit } fun unitReturn3(): Unit { } fun unitReturn4(): Unit = Unit ~~~ 为什么我们选择使用一个不一样的名字Unit 而不是把它叫作Void 。在函数式编程语言中,Unit这个名字习惯上被用来表示“只有一个实例”,这正是Kotlin 的Unit 和Java 的void 的区别。我们本可以沿用Void 这个名字,但是Kotlin还有一个叫作Nothing 的类型,它有着完全不同的功能。Void 和Nothing 两种类型的名字含义如此相近,会令人困惑。接下来,我们来学习一下Kotlin中的Nothing。