创建包含哈希的数组
Creating an array containing a hash
问题编辑 - 分解第二个示例如何创建哈希。
我不明白为什么下面的第一个示例没有创建哈希,而第二个示例创建了。
a: :b
# => SyntaxError: (irb):1: syntax error, unexpected ':', expecting end-of-input
对比
[a: :b]
# => [{:a => :b}]
当你只有 a: :b
是一个语句并且它是无效的 Ruby 语法时。
当你有[a: :b]
时,你实际上是在调用一个方法。您调用的方法是[](a: :b)
。当您将 a: :b
作为方法的参数时,Ruby 将其视为散列并将方法 {:a => :b}
作为参数。所以最终结果就是您看到的 [{:a => :b}]
。
问题编辑 - 分解第二个示例如何创建哈希。
我不明白为什么下面的第一个示例没有创建哈希,而第二个示例创建了。
a: :b
# => SyntaxError: (irb):1: syntax error, unexpected ':', expecting end-of-input
对比
[a: :b]
# => [{:a => :b}]
当你只有 a: :b
是一个语句并且它是无效的 Ruby 语法时。
当你有[a: :b]
时,你实际上是在调用一个方法。您调用的方法是[](a: :b)
。当您将 a: :b
作为方法的参数时,Ruby 将其视为散列并将方法 {:a => :b}
作为参数。所以最终结果就是您看到的 [{:a => :b}]
。