譬如:
def calculate(*numbers, method = {:add=>true})
就一直报错:
syntax error, unexpected '=', expecting ')' (SyntaxError)
检索The Ruby Programming Wikibook 的相关语法也没有提示,请问这是什么原因呢?
黄舟2017-04-24 09:14:26
假设你是解释器,你会把 calculate({add: true})
中的参数 {add: true}
分配给 *numbers
呢,还是 method
呢?
完全判断不了对不对?所以是不允许的。
天蓬老师2017-04-24 09:14:26
这种*numbers
的可变参数,难道不是只能在最后么?
def calc(method = {add: true}, *numbers); end
是允许的,反过来就不行了。