【问题标题】:Ruby parameters SyntaxError with varargs带有可变参数的 Ruby 参数 SyntaxError
【发布时间】:2016-11-17 10:34:43
【问题描述】:
    def a(b: 88, c: 97)
      puts b
      puts c
    end

上面的代码有效。但是,

def a(b: 88, c: 97, *c)
  puts b
  puts c
end

引发语法错误。谁能指出正确的文档来解释它?

【问题讨论】:

  • 您的代码应该做什么,即当使用不同的值调用方法中c 的预期值是多少?

标签: ruby


【解决方案1】:

位置参数首先出现在方法签名中。命名参数放在最后。

这样会更好,但你仍然有重复的参数名称,这是不允许的。

def a(*c, b: 88, c: 97)
  puts b
  puts c
end
# ~> -:1: duplicated argument name
# ~> def a(*c, b: 88, c: 97)
# ~>                    ^

更多信息的好答案:Mixing keyword with regular arguments in Ruby?

【讨论】:

    猜你喜欢
    • 2019-04-05
    • 2013-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-09
    相关资源
    最近更新 更多