ruby - 使用散列作为参数时,没有花括号有区别吗?

标签 ruby hash literals

这两种表达方式似乎没有区别。

h = {a: 1, b: 2}
h.merge({c: 3, d: 4})
h.merge(c: 3, d: 4)

如果我在使用 Hash 作为参数时省略花括号,是否会出现问题?

最佳答案

不,两个版本之间没有区别。

此外,当散列是方法的最后一个参数时,省略大括号是 Ruby/Rails 的常见习惯用法。比较以下常见示例:

validates :foo, { presence: true }
validates :foo, presence: true

link_to "Foos", foo_path, { class: "foo" }
link_to "Foos", foo_path, class: "foo"

关于ruby - 使用散列作为参数时,没有花括号有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35666706/

相关文章:

ruby - Ruby 中的左移是什么意思?

struct 中的 char* 是可重写的,但 main() 函数中的 char* 则不可重写。为什么?

java - 声明存储在集合中的类型(文字)的变量

java - 您可以从 Java 调用 OpenSSL 的哈希原语吗?

security - 如何在我的登录密码中添加盐?

javascript - JavaScript中有多少种文字?

在 ActiveSupport::Concern 中使用类变量的 Ruby 替代方案

ruby - 我应该在我的 Ruby (JRuby) 代码中放入什么来打断调试器?

ruby-on-rails - 将参数传递给关注点,联合使用

ruby - 我怎样才能避免在我的两个总和解决方案中使用相同的元素