Void返回类型在Kotlin中意味着什么

时间:2017-06-29 21:03:58

标签: java kotlin void return-type

我尝试在Kotlin中创建函数而不返回值。我编写了一个类似于Java的函数但使用Kotlin语法

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

我发现错误

  

错误:A'返回'具有a的函数中所需的表达式   阻止身体(' {...}')

经过几次修改后,我已经使用可空的Void作为返回类型。但这并不是我所需要的

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

根据Kotlin documentation单位类型对应于Java中的void类型。因此,在Kotlin中没有返回值的正确函数是

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

或者

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

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

2 个答案:

答案 0 :(得分:19)

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

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

您收到的错误消息正好告诉您。您将(Java)类指定为返回类型,但您没有在块中使用return语句。

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

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

答案 1 :(得分:18)

Void是Java中的一个对象,并且意味着什么都没有'。
在Kotlin,有一些专门的类型,没有':

  • Unit - >替换java的void
  • Nothing - > '一个永不存在的值'

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