如何从Scala函数返回Unit?

Scala函数返回Unit

Unit是在Scala中用作返回语句的返回类型,当该函数未返回任何值时。

语法:

def functionName (arg...) : Unit = {
	// 功能码
}

如何return?

当函数没有返回值时,我们可以返回Unit,即,当函数中未指定返回值时,函数会自动将Unit返回给调用函数。

演示如何返回unit的程序,

object MyClass {
    def favLang(lang:String) : Unit  = {
        println("我最喜欢的语言是 " + lang)
    };
    
    def main(args: Array[String]) {
        // 打印函数返回的值
        println(favLang("Scala"))
        
    }
}

输出:

我最喜欢的语言是 Scala
()

说明:

在上面的代码中,我们声明了一个favLang()返回Unit值的函数。然后,我们在main中打印了该函数的返回值,并打印了()。

如果我们返回返回类型为Unit的值怎么办?

让我们检查一下,如果我们从具有返回类型单位的函数中返回一个值,将会发生什么。

object MyClass {
    //返回单位值的函数
    def favLang(lang:String) : Unit  = {
        println("我最喜欢的语言是 " + lang)
        // 返回int值
        return 10
    };
    
    def main(args: Array[String]) {
        // 打印函数返回的值
        println(favLang("Scala"))
    }
}

输出:

我最喜欢的语言是 Scala
()

ex1.scala:6: warning: a pure expression does nothing in statement position
        return 10
               ^
ex1.scala:6: warning: enclosing method favLang has result type Unit: return value discarded
        return 10
        ^

说明:

在上面的代码中,我们尝试从具有返回类型Unit的函数中返回整数值。该函数将编译警告,并丢弃返回值并返回Unit值。