从scala函数返回的打印值

时间:2011-10-26 17:50:26

标签: scala intellij-idea

object TestClass {
  def main (args: Array[String]) {
    println("Hello World");
    val c = List (1,2,3,4,5,6,7,8,9,10)
    println(findMax(c))
  }
  def findMax (tempratures: List[Int]) {
    tempratures.foldLeft(Integer.MIN_VALUE) {Math.max}
  }
}

显示的输出是

Hello World 
()

为什么输出不是

Hello World
10

我在IntelliJ

中这样做

2 个答案:

答案 0 :(得分:10)

这是最常见的scala拼写错误之一。

您在方法结束时错过了=

def findMax (tempratures: List[Int]) {

应阅读:

def findMax (tempratures: List[Int]) = {

关闭=意味着您的方法返回Unit(无)。

答案 1 :(得分:7)

因为您定义的findMax没有返回类型,所以返回类型为Unit()

def findMax (tempratures: List[Int]) { ... }

又名

def findMax (tempratures: List[Int]) : Unit = { ... }

你想要

def findMax (tempratures: List[Int]) : Int = { ... }

或省略类型

def findMax (tempratures: List[Int]) = { ... }