-1

写有区别吗

parameter: "String"

和更长的

:parameter => "String"
4

4 回答 4

4

第一个在 Ruby 1.8 中不起作用

于 2013-03-24T17:41:15.633 回答
2

它们都构造了一个哈希键值对。在大多数情况下,它们是可以互换的。该parameter: "String"语法是在 Ruby 1.9 中引入的,并以JSON为模型。

有一些差异/陷阱。最大的问题是较新的语法不处理带引号的键。在 1.8 样式的哈希中,您可以这样做:

:"multi word key" => some_value

在 1.9 样式的哈希中,这是一个语法错误:

"multi word key": some_value
于 2013-03-24T17:45:45.460 回答
0

没有不同。

我更喜欢第二种语法,因为我认为在进行简要概述时更容易看到。

在 Ruby 1.9.x 和 2.0.0 中

于 2013-03-24T17:39:21.830 回答
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"} 

两者都返回相同的格式。

于 2013-03-24T20:41:49.760 回答