Ruby关键字参数最佳实践

时间:2018-03-11 22:40:19

标签: ruby styles keyword-argument

Ruby关键字(命名)参数已存在一段时间了。我想知道是否出现了关于最佳实践的指导,或者您对如何最好地使用它们的看法。

例如,可以将命名关键字与未命名的参数混合使用,例如如果一个参数是必需的,其余的是可选的,或者通常建议坚持使用同一种方法的任何一种风格?请考虑以下方法:

def parse_file(path, optional_option1: true, optional_option2: false, optional_option3: 42)

您认为适合使用命名关键字的参数数量是多少。它只是2或3的冗余,或者它是否使代码更容易阅读,即使参数很少?

在大多数示例中,我发现关键字参数用于可选参数,它们确保代码更容易阅读,而不必在方法调用中指定几个参数的默认值,只是为了能够指定最后一个参数,但它们对于必要的论证有多大用处?

我知道这是相当主观的,但我很想知道别人如何使用这个功能。

1 个答案:

答案 0 :(得分:0)

我通常更喜欢尽可能简单灵活。在你的情况下,它将是这样的:

def parse_file(path, options={})
  # You can keep this hash outside this function
  defaults = {
    optional_option1: true,
    optional_option2: false, 
    optional_option3: 42
  }
  settings = defaults.merge(options)
  # ...

您可以执行一些验证:

def parse_file(path, options={})
  raise ArgumentError.new('Missing required argument: optional_option1:') unless options[:optional_option1]

等等。这将是我的建议以及我如何使用我的公司