【问题标题】:Having a non-optional argument follow an optional argument在可选参数之后有一个非可选参数
【发布时间】:2011-11-17 11:52:52
【问题描述】:

关于此代码:

def plot(div_name = "", series , options = {} )

我收到语法错误:

unexpected '=', expecting ')' (SyntaxError).

这是为什么呢? 为系列分配默认值可以解决问题。

【问题讨论】:

  • 以后请不要将代码放在问题的标题中。代码应在代码标签中适当地格式化:stackoverflow.com/editing-help
  • @Polynomial 尽管如此,我认为您的编辑使标题的帮助减少了 100%。我什至不会点击标题为“为什么会出现语法错误?”的问题。该标题包含关于问题内容的绝对零信息。原标题告诉了我我需要知道的一切——是否缺少代码格式。
  • @sepp2k - 抱歉。我确实很随意地对其进行了编辑。我已将其清理为更具描述性。
  • 您已经在使用选项哈希。为什么不让系列成为一种选择? :-)

标签: ruby


【解决方案1】:

您不允许有可选参数后跟非可选参数,然后再有更多可选参数。如果允许,plot(foo, bar) 应该是 plot(foo, bar, {}) 还是 plot("", foo, bar) 将是模棱两可的。

【讨论】:

  • 实际上,问题在于有一个可选参数,后跟一个非可选参数,后跟一个可选参数。
  • @Andrew:确实如此。已编辑。 (在可选参数之后允许使用非可选参数是 1.9 中的新功能,所以我忘记了)。
猜你喜欢
  • 1970-01-01
  • 2017-12-01
  • 2010-11-14
  • 2018-05-07
  • 1970-01-01
  • 2022-07-24
  • 2021-10-22
  • 2021-03-25
相关资源
最近更新 更多