函数Scala的返回值



我在Scala中有以下程序:

object Ch4 {
        def main(args: Array[String]) {
      println("Hello, world!")
      val x = sortMap()
      println(x)
    }                                             //> main: (args: Array[String])Unit
    def sortMap ( ) {
        val scores = scala.collection.immutable.SortedMap ( "Alice" -> 10, "Fred" -> 7, "Bob" -> 3)
        return scores
    }                                             //> sortMap: ()Unit
}  

我很困惑为什么sortMap函数的返回类型是Unit而不是Map。还有为什么main函数中没有得到print

形式def name() { ... }的方法定义隐式返回Unit。您需要添加返回类型并添加=:

def sortMap(): SortedMap[String, Int] = {
    val scores = scala.collection.immutable.SortedMap ( "Alice" -> 10, "Fred" -> 7, "Bob" -> 3)
    return scores
}

或者简单地说:

def sortMap() = SortedMap("Alice" -> 10, "Fred" -> 7, "Bob" -> 3)

最新更新