Scala 默認參數
在Scala中,有時我們調用某些函數時,不希望給出參數的具體值,而希望使用參數自身默認的值,此時就定義在定義函數時使用默認參數。
def sayHello(firstName: String, middleName: String = "William", lastName: String = "Croft") = firstName + " " + middleName + " " + lastName
如果給出的參數不夠,則會從作往右依次應用參數
Scala 與 Java實現默認參數的區別
Java:
public void sayHello(String name, int age) {
if(name == null) {
name = "defaultName"
}
if(age == 0) {
age = 18
}
}
sayHello(null, 0)
Scala:
def sayHello(name: String, age: Int = 20) {
print("Hello, " + name + ", your age is " + age)
}
sayHello("leo")
帶名參數
在調用函數時,也可以不按照函數定義的參數順序來傳遞參數,而是使用帶名參數的方式來傳遞。
sayHello(firstName = "Mick", lastName = "Nina", middleName = "Jack")
還可以混合使用未命名參數和帶名參數,但是未命名參數必須排在帶名參數前面。
sayHello("Mick", lastName = "Nina", middleName = "Jack")