首頁  >  問答  >  主體

ruby - 方法可變參數(如*options)之後的參數,不可以設定預設值嗎?

譬如:

def calculate(*numbers, method = {:add=>true})

就一直報錯:

syntax error, unexpected '=', expecting ')' (SyntaxError)

檢索The Ruby Programming Wikibook 的相關語法也沒有提示,請問這是什麼原因呢?

伊谢尔伦伊谢尔伦2710 天前717

全部回覆(3)我來回復

  • 黄舟

    黄舟2017-04-24 09:14:26

    假設你是解釋器,你會把 calculate({add: true}) 中的参数 {add: true} 分配给 *numbers 呢,还是 method 呢?

    完全判斷不對不對?所以是不允許的。

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-24 09:14:26

    這種*numbers 的可變參數,難道不是只能在最後麼?

    def calc(method = {add: true}, *numbers); end 是允許的,反過來就不行了。

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-24 09:14:26

    不允許,會有歧義

    回覆
    0
  • 取消回覆