Unit是在Scala中用作返回语句的返回类型,当该函数未返回任何值时。
语法:
def functionName (arg...) : Unit = { // 功能码 }
当函数没有返回值时,我们可以返回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值。