加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 在默认方法参数中使用.reverse_merge或.merge

发布时间:2020-12-17 03:29:13 所属栏目:百科 来源:网络整理
导读:你可以做到这两点 def setup(options = {}) options.reverse_merge :size = 25,:velocity = 10end 和 def setup(options = {}) { :size = 25,:velocity = 10 }.merge(options)end 在方法的参数中指定默认值. 问题是:哪一个更好?你更愿意使用哪一个?性能,
你可以做到这两点

def setup(options = {})
  options.reverse_merge :size => 25,:velocity => 10
end

def setup(options = {})
  { :size => 25,:velocity => 10 }.merge(options)
end

在方法的参数中指定默认值.

问题是:哪一个更好?你更愿意使用哪一个?性能,代码可读性或其他方面有什么不同吗?

编辑:我偶然添加了爆炸(!)…并不是要问无爆炸方法与爆炸方法之间的区别

解决方法

我倾向于使用reverse_merge方法:

options.reverse_merge(size: 25,velocity: 10)

原因是:

>当哈希用作方法参数时,您不必为哈希编写大括号.
>从左到右阅读你知道这行代码正在处理传入的选项哈希,首先要了解一个新哈希,然后实现选项合并到它.
>如果您确实想要更新原始选项哈希,那就像添加一样简单!到reverse_merge!方法.而使用其他方法,您现在必须添加变量(重新)赋值.

最终,我认为这只是一种风格选择,而且取决于你和大脑的感觉.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读