Maison  >  Questions et réponses  >  le corps du texte

ruby - 方法可变参数(如*options)之后的参数,不可以设置默认值吗?

譬如:

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

就一直报错:

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

检索The Ruby Programming Wikibook 的相关语法也没有提示,请问这是什么原因呢?

伊谢尔伦伊谢尔伦2759 Il y a quelques jours749

répondre à tous(3)je répondrai

  • 黄舟

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

    En supposant que vous soyez interprète, attribueriez-vous le paramètre calculate({add: true}) dans {add: true} à *numbers ou method ?

    Vous ne pouvez pas juger du tout, n'est-ce pas ? Ce n'est donc pas autorisé.

    répondre
    0
  • 天蓬老师

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

    Les paramètres variables de *numbers ne peuvent-ils pas être placés uniquement à la fin ?

    def calc(method = {add: true}, *numbers); end est autorisé, mais l'inverse n'est pas autorisé.

    répondre
    0
  • 伊谢尔伦

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

    Non autorisé, il y aura une ambiguïté

    répondre
    0
  • Annulerrépondre