该井引RIP哈希火箭后似乎意味着散列火箭语法( :foo => "bar"
)有利于新的对Ruby的JSON风格的哈希(已弃用foo: "bar"
),但我找不到任何明确的参考说明哈希火箭形式实际上已经过时/轻率例如Ruby 1.9的。
Answer 1:
该博客文章的作者是过于戏剧化和愚蠢中, =>
是还是 相当 必要的 。 特别是:
- 您必须使用适用于需要引用符号火箭:
:'where.is' => x
是有效的,但'where.is': x
是没有的。 红宝石2.2已经修复了这个问题,所以你可以说'where.is': x
在Ruby中2.2+。 - 您必须使用火箭为无效的标签符号:
:$set => x
是有效的,但$set: x
是没有的。 在Ruby 2.2+,你可以解决这个问题引号:'$set': x
会做正确的事。 - 如果你在你的哈希不在符号使用的密钥必须使用火箭:
's' => x
是有效的,但's': x
是完全不同的东西。
您可以围绕上述杂牌过程中有明显的方式:
h = { }
h[:'where.is'] = 'pancakes house?'
# etc.
但是这只是丑陋的和不必要的。
没有削弱Ruby的散列火箭是不会去任何地方。
文章来源: Is Hash Rocket deprecated?