【问题标题】:Ruby keyword arguments best practiceRuby 关键字参数最佳实践
【发布时间】:2018-08-19 22:06:05
【问题描述】:

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

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

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

您认为适合使用命名关键字的最少参数数量是多少。仅 2 或 3 个是多余的,还是即使参数很少也可以使代码更易于阅读?

在大多数示例中,我看到关键字参数用于可选参数,它们确实使代码更易于阅读,而不是在方法调用中指定几个参数的默认值,只是为了能够指定最后一个参数,但是它们对于所需的参数有多大用处?

我知道这是相当主观的,但我很好奇其他人如何使用此功能。

【问题讨论】:

    标签: ruby styles keyword-argument


    【解决方案1】:

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

    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]
    

    等等。这将是我的建议以及我与公司合作的方式

    【讨论】:

      猜你喜欢
      • 2010-09-21
      • 1970-01-01
      • 1970-01-01
      • 2017-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-24
      • 1970-01-01
      相关资源
      最近更新 更多