Scala入门-默认参数值(Default Parameter Values)

Scala入门-默认参数值(Default Parameter Values)

默认参数值(Default Parameter Values)

Scala中可以为参数提供默认值,从而允许在调用时省略那些参数。

def log(message: String, level: String = "INFO") = println(s"$level: $message")

log("System starting")  // prints INFO: System starting
log("User not found", "WARNING")  // prints WARNING: User not found

参数level具有默认值,所以它是可选的。在代码最后一行,参数值”WARNING”覆盖了默认值”INFO”。在Java中你可以重载方法,在Scala中你可以用带有可选参数的方法实现相同的效果。然而,如果调用时省略了一个参数,该参数后面的所有参数都必须写明参数名。

class Point(val x: Double = 0, val y: Double = 0)
val point1 = new Point(y = 1)

这里我们必须使用y = 1

注意当从Java代码调用时,Scala中的默认参数就不是可选的了:

// Point.scala
class Point(val x: Double = 0, val y: Double = 0)

// Main.java
public class Main {
    public static void main(String[] args) {
        Point point = new Point(1);  // does not compile
    }
}

参考资料

本文译自Tour Of Scala – Default Parameter Values

上一篇:Scala入门-注解(Annotations)

下一篇:Scala入门-命名参数(Named Arguments)

发表评论

电子邮件地址不会被公开。 必填项已用*标注