2016-04-02 41 views
0

IVarsayılan argümanlarla yöntem çağrılırken önceki değer nasıl atlanır? varsayılan kullanıldığı gibi <code>add()</code> kullanarak arama zaman <code>add(5, 5)</code> kullanarak arama zaman

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

aşağıdaki gibi bir işlevi vardır, çıkış 10 , çıkış, 25'dir. add(8) numaralı telefonu kullanarak, yani tek bir değer kullanırken, a atanan 8, yani toplam 23'tür.

Şimdi, yalnızca a değerine ve b'ye varsayılan değer atamak istiyorum.

add(, 6)'u denedim, ancak bir hata veriyor. Scala parametrelerini adlı destekler yana

+1

Kullanım adlandırılmış parametreleri: 'ekleyin (b = 6)'. Tanımınızın bir '=' işareti eksik olduğunu unutmayın. – Jubobs

+2

'var' kullanmayın. Neden kullanıyorsun? Neden sadece yazmak 'yazmak yok (a: Int = 10, b: Int = 15) = a + b'? "Var" ı kullanmak istediğiniz her zaman, kendinize şunu sorun: "_why_ sanırım ti kullanmak istiyorum?" – Dima

+1

"Adlandırılmış parametreler" kullanılmasına rağmen, bu durumda neden varsayılan parametreleri kullandığınızı sorgulayacağım. Ben ekle (10, 6) 'ekle (b = 6)' dan daha okunabilir. Genel olarak bu örnekte açık, üstü kapalı, yani varsayılan değer lehine önyargılı olduğumu itiraf ediyorum. –

cevap

2

, yapabileceğiniz:

add(b = 6) // 16