scala之旅-核心語言特性預設引數值(五)
阿新 • • 發佈:2020-10-22
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中需要用過載的方式實現的方法,在這裡可以通過可選引數的方式實現。但是,如果呼叫的時候省略了某個引數,那個這個引數後面的引數必須用名字指示出來
class Point(val x: Double = 0, val y: Double = 0) val point1 = new Point(y = 1)
這裡我們必須將y的名字指示出來
注意,在scala中的預設引數,在java中呼叫時是不能省略的。
// 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 } }