写有区别吗
parameter: "String"
和更长的
:parameter => "String"
第一个在 Ruby 1.8 中不起作用
它们都构造了一个哈希键值对。在大多数情况下,它们是可以互换的。该parameter: "String"
语法是在 Ruby 1.9 中引入的,并以JSON为模型。
有一些差异/陷阱。最大的问题是较新的语法不处理带引号的键。在 1.8 样式的哈希中,您可以这样做:
:"multi word key" => some_value
在 1.9 样式的哈希中,这是一个语法错误:
"multi word key": some_value
没有不同。
我更喜欢第二种语法,因为我认为在进行简要概述时更容易看到。
在 Ruby 1.9.x 和 2.0.0 中
它只是一个语法糖。
如果你在 irb 中看到 Ruby 1.8.7
1.8.7 :004 > {:name => 'String'}
=> {:name=>"String"}
和 1.9.3
1.9.3p392 :002 > {name: 'String'}
=> {:name=>"String"}
两者都返回相同的格式。