Kotlin中的Void返回类型是什么意思?

我试图在Kotlin中创建没有返回值的函数。 而且我用Java编写了一个函数,但是使用了Kotlin语法

fun hello(name: String): Void { println("Hello $name"); } 

我有一个错误

错误:带有块体('{…}'的函数中需要“返回”表达式)

经过几次更改后,我得到了一个可为空函数作为返回类型的工作函数。 但这不完全是我所需要的

 fun hello(name: String): Void? { println("Hello $name"); return null } 

根据Kotlin文档,单元类型对应于Java中的void类型。 所以在Kotlin中没有返回值的正确函数是

 fun hello(name: String): Unit { println("Hello $name"); } 

要么

 fun hello(name: String) { println("Hello $name"); } 

问题是: Void在Kotlin中意味着什么,如何使用它,以及这种用法的优点是什么?

Void是一个普通的Java类,在Kotlin中没有特殊的含义。

你可以在Kotlin中使用Integer ,这是一个Java类(但应该使用Kotlin的Int )。 你正确地提到了两种方式不返回任何东西。 所以,在Kotlin Void是“东西”!

你得到的错误信息告诉你这个。 您指定了一个(Java)类作为返回类型,但是您没有在该块中使用return语句。

坚持这一点,如果你不想返回任何东西:

 fun hello(name: String) { println("Hello $name"); } 

Void是Java中的一个对象,意味着什么也没有。
在Kotlin中,有“没有”的专门类型:

  • Unit – >取代java的void
  • Nothing – >“永远不存在的价值”

现在在Kotlin中,你可以引用Void ,就像你可以从Java引用任何类一样,但你真的不应该这样做。 相反,使用Unit 。 另外,如果您返回Unit ,您可以省略它。