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
,您可以省略它。