84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
譬如:
def calculate(*numbers, method = {:add=>true})
就一直报错:
syntax error, unexpected '=', expecting ')' (SyntaxError)
检索The Ruby Programming Wikibook 的相关语法也没有提示,请问这是什么原因呢?
小伙看你根骨奇佳,潜力无限,来学PHP伐。
假设你是解释器,你会把 calculate({add: true}) 中的参数 {add: true} 分配给 *numbers 呢,还是 method 呢?
calculate({add: true})
{add: true}
*numbers
method
完全判断不了对不对?所以是不允许的。
这种*numbers 的可变参数,难道不是只能在最后么?
def calc(method = {add: true}, *numbers); end 是允许的,反过来就不行了。
def calc(method = {add: true}, *numbers); end
不允许,会有歧义
假设你是解释器,你会把
calculate({add: true})
中的参数{add: true}
分配给*numbers
呢,还是method
呢?完全判断不了对不对?所以是不允许的。
这种
*numbers
的可变参数,难道不是只能在最后么?def calc(method = {add: true}, *numbers); end
是允许的,反过来就不行了。不允许,会有歧义