譬如:
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
是允許的,反過來就不行了。不允許,會有歧義