Ruby 关键字参数最佳实践

标签 ruby styles keyword-argument

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/

相关文章:

ruby-on-rails - 从特定变量生成唯一 token

ruby - 零怎么办?在 ruby 工作?

wpf - 禁用列表框不会改变样式的背景颜色

css - 找出给定页面上使用的 CSS 样式

css - 菜单 'border-right: none' 不工作

Ruby 1.9 线程池

ruby-on-rails - 我如何设置 'attr_accessible' 以不允许访问使用 Ruby on Rails 的模型的任何字段?

python - 如何在不更改参数名称的情况下修饰 Python 函数?

python - 如何在 scikit-learn 中实现可调用距离度量?

python - 如果存在具有相同名称的位置参数,为什么 kwargs 中的键被删除?