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)
更具可读性。我承认我偏向于显式的而非隐式的,也就是说,一般来说,在这种情况下是默认值。