使用符号作为哈希键

时间:2014-10-30 21:53:09

标签: ruby-on-rails ruby hash

在学习rails时,我经常感到困惑,在某些情况下,冒号放在一个单词之前,而在其他情况下,它放在单词之后。我一直在阅读和重读,试图更好地理解这一点,到目前为止已经确定,当冒号放在单词之前它是一个符号。

我认为我理解这一点,直到我读到" Agile Web Development with Rails 4 (Facets of Ruby), page 56"。

我是否正确地理解了符号在其名称前面有一个冒号,即使用作哈希中的键,但是有一种替代语法将符号名称后的冒号放在哈希中?

2 个答案:

答案 0 :(得分:1)

那是对的。始终使用名称

之前的冒号定义符号
:foo

带有符号键的哈希的原始符号是

{ :foo => "bar" }

然而,自从Ruby 1.9以来,有一种替代符号被设计得更加紧凑。

{ foo: "bar" }

这两个符号是等价的。但是,这是一个特定的Hash异常。以下内容不是其上的有效符号声明

foo:

答案 1 :(得分:1)

是的,如果你启动Rails控制台,那么运行:

{ test: "ds"}.keys[0] == :test

您会看到它返回true