Ruby 语法错误:语法错误,意外的 '=',期望 ')'

San*_*khe 2 ruby default-parameters

我正在尝试在方法中传递默认参数,但到目前为止还无法这样做。我编写了一个具有以下签名的方法。

def abc(a,b=22,c,d=55)
end
Run Code Online (Sandbox Code Playgroud)

我收到上述代码的错误“语法错误,意外的‘=’,期望‘)’”。

如果我将上面的代码替换为下面所示的代码,那么它就可以正常工作。

def abc(a,b=5,c)

end
Run Code Online (Sandbox Code Playgroud)

这可能是什么原因?

谢谢

Aru*_*hit 5

来自关于默认值的 Ruby 文档:

参数可能有默认值:

def add_values(a, b = 1)
  a + b
end
Run Code Online (Sandbox Code Playgroud)

默认值不需要首先出现,但具有默认值的参数必须组合在一起。还行吧:

def add_values(a = 1, b = 2, c)
  a + b + c
end
Run Code Online (Sandbox Code Playgroud)

这将引发语法错误:

def add_values(a = 1, b, c = 1)
  a + b + c
end
Run Code Online (Sandbox Code Playgroud)