创建包含哈希的数组

时间:2015-11-25 17:01:47

标签: arrays ruby hash literals

问题编辑 - 细分第二个例子如何创建哈希值。

我无法弄清楚为什么下面的第一个例子没有创建哈希,第二个例子没有。

a: :b
# => SyntaxError: (irb):1: syntax error, unexpected ':', expecting end-of-input

VS

[a: :b]
# => [{:a => :b}]

1 个答案:

答案 0 :(得分:4)

如果你只是a: :b这是一个语句而且它是无效的Ruby语法。

当你有[a: :b]时,你实际上正在调用一个方法。您调用的方法是[](a: :b)。当您将a: :b作为方法的参数时,Ruby将其视为哈希,并将方法{:a => :b}作为其参数。所以最终的结果是你看到的[{:a => :b}]