被哈希火箭弃用?被哈希火箭弃用?(Is Hash Rocket deprecated?)

2019-05-13 10:44发布

该井引RIP哈希火箭后似乎意味着散列火箭语法( :foo => "bar" )有利于新的对Ruby的JSON风格的哈希(已弃用foo: "bar" ),但我找不到任何明确的参考说明哈希火箭形式实际上已经过时/轻率例如Ruby 1.9的。

Answer 1:

该博客文章的作者是过于戏剧化和愚蠢中, =>是还是 相当 必要的 。 特别是:

  1. 您必须使用适用于需要引用符号火箭: :'where.is' => x是有效的,但'where.is': x是没有的。 红宝石2.2已经修复了这个问题,所以你可以说'where.is': x在Ruby中2.2+。
  2. 您必须使用火箭为无效的标签符号: :$set => x是有效的,但$set: x是没有的。 在Ruby 2.2+,你可以解决这个问题引号: '$set': x会做正确的事。
  3. 如果你在你的哈希不在符号使用的密钥必须使用火箭: 's' => x是有效的,但's': x是完全不同的东西。

您可以围绕上述杂牌过程中有明显的方式:

h = { }
h[:'where.is'] = 'pancakes house?'
# etc.

但是这只是丑陋的和不必要的。

没有削弱Ruby的散列火箭是不会去任何地方。



文章来源: Is Hash Rocket deprecated?