从Kotlin文档中:

如果函数不返回任何有用的值,则其返回类型为Unit。单位是一种只有一个值-Unit.VALUE的类型。此值不必显式返回:

fun printHello(name : String?) : Unit {
   if (name != null)
     print("Hello, $name!")
   else
     print("Hi there!")
   // We don't need to write 'return Unit.VALUE' or 'return', although we could
}

返回单位功能的目的是什么?为什么有VALUE?这个值是多少?

最佳答案

目的与C或Java的void相同。只有Unit是适当的类型,因此可以将其作为通用参数等进行传递。

  • 为什么我们不称其为“无效”:因为单词“void”表示“无”,还有另一种类型Nothing,表示“根本没有任何值”,即计算未正常完成(永远循环或引发异常)。我们承受不起意义的冲突。
  • 为什么Unit具有值(即与Nothing不同):因为那时通用代码可以正常工作。如果为通用参数T传递Unit,则为任何T编写的代码将期望有一个对象,并且必须有一个对象,即Unit的唯一值。
  • 如何访问Unit的值:由于它是一个单例对象,所以只需说Unit
  • 07-24 09:44
    查看更多