Ruby 关键字(命名)参数已经存在了一段时间了。我想知道是否已经出现了任何最佳实践指南,或者您对如何最好地使用它们有何看法。
例如,可以将命名关键字与未命名参数混合使用吗?如果一个参数是必需的,其余参数是可选的,或者通常建议对一个相同的方法坚持使用任一样式?考虑以下方法:
def parse_file(path, optional_option1: true, optional_option2: false, optional_option3: 42)
您认为适合使用命名关键字的参数最少数量是多少。仅 2 或 3 个是多余的,还是即使参数很少,也能让代码更容易阅读?
在大多数示例中,我看到关键字参数用于可选参数,它们确实使代码更易于阅读,而不是在方法调用中指定多个参数的默认值,只是为了能够指定最后一个参数,但是它们对于必需的参数有多大用处?
我知道这相当主观,但我很好奇其他人如何使用此功能。
最佳答案
我通常更喜欢保持尽可能简单和灵活。在你的情况下,它会是这样的:
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]
等等。这是我的建议以及我如何与我的公司合作
关于Ruby 关键字参数最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49225874/