我在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)