Scala提供了默认参数值的功能,允许调用者忽略那些参数。
1 | def log(message: String, level: String = "INFO") = println(s"$level: $message") |
参数level
拥有一个默认值所以该参数是可选的。最后一行,参数"WARNING"
覆盖了默认参数"INFO"
。在Java中你可能需要进行重载方法,而在Scala中使用可选参数能够达到同样的效果。但是,如果调用者忽略了一个参数,那么后面的参数必须带上名字。
1 | class Point(val x: Double = 0, val y: Double = 0) |
这里一定要写上y=1
。
注意,在Java代码中调用时,Scala中的默认参数并不是可选的:
1 | // Point.scala |
1 | // Main.java |