Ruby关键字(命名)参数已存在一段时间了。我想知道是否出现了关于最佳实践的指导,或者您对如何最好地使用它们的看法。
例如,可以将命名关键字与未命名的参数混合使用,例如如果一个参数是必需的,其余的是可选的,或者通常建议坚持使用同一种方法的任何一种风格?请考虑以下方法:
def parse_file(path, optional_option1: true, optional_option2: false, optional_option3: 42)
您认为适合使用命名关键字的参数数量是多少。它只是2或3的冗余,或者它是否使代码更容易阅读,即使参数很少?
在大多数示例中,我发现关键字参数用于可选参数,它们确保代码更容易阅读,而不必在方法调用中指定几个参数的默认值,只是为了能够指定最后一个参数,但它们对于必要的论证有多大用处?
我知道这是相当主观的,但我很想知道别人如何使用这个功能。
答案 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]
等等。这将是我的建议以及我如何使用我的公司