使用带有默认值的选项哈希作为ruby中的参数是一种很好的干净方法

前端之家收集整理的这篇文章主要介绍了使用带有默认值的选项哈希作为ruby中的参数是一种很好的干净方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我想要一个像这样调用方法
tiger = create_tiger( :num_stripes => 12,:max_speed => 43.2 )
 tiger.num_stripes # will be 12

其中一些选项具有默认值:

tiger = create_tiger( :max_speed => 43.2 )
 tiger.num_stripes # will have some default value

方法实现中实现默认行为的一种很好的惯用ruby方法是什么?

解决方法

如果您使用的是Rails(不仅仅是普通的Ruby),那么稍微短一些的方法就是
def foo(options = {})
  options.reverse_merge! { ... defaults ... }
end

这样做的另一个好处是可以让你更干净地做多行:

def foo(options = {})
  options.reverse_merge!(
    :some_default => true,:other_default => 5
  )
end

猜你在找的Ruby相关文章