печать значений, возвращаемых из функции scala - PullRequest
4 голосов
/ 26 октября 2011
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 ]

10 голосов
/ 26 октября 2011

Это один из самых распространенных опечаток в scala.

В конце вашего метода вы пропускаете =:

def findMax (tempratures: List[Int]) {

Следует читать:

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

Отключение = означает, что ваш метод возвращает Unit (ничего).

7 голосов
/ 26 октября 2011

Поскольку вы определяете findMax без типа возвращаемого значения, тип возвращаемого значения Unit или ().

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

aka

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

Вы хотите вместо

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

или с пропущенным типом

def findMax (tempratures: List[Int]) = { ... }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...