写作之间是否有区别
parameter: "String"
和更长的
:parameter => "String"
答案 0 :(得分:4)
第一个在Ruby 1.8中不起作用
答案 1 :(得分:2)
它们都构造了一个散列键值对。在大多数情况下,它们是可以互换的。 {1.9}中引入了parameter: "String"
语法,并以JSON。
存在一些差异/陷阱。最大的一个是较新的语法不处理引用的键。在1.8样式的哈希中,您可以这样做:
:"multi word key" => some_value
在1.9样式的哈希中,这是语法错误:
"multi word key": some_value
答案 2 :(得分:0)
没有区别。
我更喜欢第二种语法,因为我认为在进行简要概述时更容易看到。
在Ruby 1.9.x和2.0.0
中答案 3 :(得分: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"}
两者都返回相同的格式。