Scala 当使用默认参数调用方法时,如何省略前面的值?
我有一个如下的函数Scala 当使用默认参数调用方法时,如何省略前面的值?,scala,parameters,default,Scala,Parameters,Default,我有一个如下的函数 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 现在,我想把默认值分配给a,只传递b 我尝试添加(,6),但它给出了一个错误。由于Scala支持命名参数,您可以执行以下操作:
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
现在,我想把默认值分配给a,只传递b
我尝试添加(,6),但它给出了一个错误。由于Scala支持命名参数,您可以执行以下操作:
add(b = 6) // 16
由于Scala支持命名参数,您可以执行以下操作:
add(b = 6) // 16
使用命名参数:
add(b=6)
。请注意,您的定义缺少一个=
符号。请不要使用var
。你为什么要用它?为什么不直接写defadd(a:Int=10,b:Int=15)=a+b
?每当你想使用var
时,问问自己:“为什么我想我要使用它?”虽然使用命名参数
有效,但我会问你为什么在这种情况下使用默认参数。我发现add(10,6)
比add(b=6)
更具可读性。我承认我偏向于显式而非隐式,即通常情况下的默认值。使用命名参数:add(b=6)
。请注意,您的定义缺少一个=
符号。请不要使用var
。你为什么要用它?为什么不直接写defadd(a:Int=10,b:Int=15)=a+b
?每当你想使用var
时,问问自己:“为什么我想我要使用它?”虽然使用命名参数
有效,但我会问你为什么在这种情况下使用默认参数。我发现add(10,6)
比add(b=6)
更具可读性。我承认我偏向于显式的而非隐式的,也就是说,一般来说,在这种情况下是默认值。