2016-04-02 56 views
0

我有一個函數,如下如何使用默認參數調用方法時省略前面的值?

def add(a: Int = 10, b: Int = 15): Int = { 
    var sum: Int = 0 
    sum = a + b 
    return sum 
} 

當我打電話使用add(5, 5),輸出爲10 當我打電話使用add(),輸出爲25,作爲默認值被使用。 當我打電話使用add(8)即一個值,a被分配8,所以總數是23.

現在,我想分配默認值,並且只傳遞b。

我試過add(, 6),但它給出了一個錯誤。

+1

用途:'加(B = 6)'。請注意,您的定義缺少'='符號。 – Jubobs

+2

請勿使用'var'。你爲什麼使用它?爲什麼不寫'def add(a:Int = 10,b:Int = 15)= a + b'?每當你想用'var'時,問自己:「我爲什麼要用它?」 – Dima

+1

儘管使用'named parameters'工作,我會質疑爲什麼你在這種情況下使用默認參數。我發現'add(10,6)'比'add(b = 6)'更具可讀性。我承認,我傾向於支持顯式的隱式,即在這種情況下的默認值。 –

回答

2

由於Scala的支持命名參數,你可以這樣做:命名參數

add(b = 6) // 16 
相關問題