Scala預設引數和帶名引數
阿新 • • 發佈:2018-12-02
預設引數
在Scala中,有時我們呼叫某些函式時,不希望給出引數的具體值,而希望使用引數自身預設的值,此時就定義在定義函式時使用預設引數。
def sayHello(firstName: String, middleName: String = "William", lastName: String = "Croft") = firstName + " " + middleName + " " + lastName
如果給出的引數不夠,則會從作往右依次應用引數。Java與Scala實現預設引數的區別
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")