Ruby 写`:name=>&引用;字符串“`和`姓名';字符串“`”?

Ruby 写`:name=>&引用;字符串“`和`姓名';字符串“`”?,ruby,hashrocket,Ruby,Hashrocket,写作和写作有区别吗 parameter: "String" 还有更长的 :parameter => "String" 没有区别 我更喜欢第二种语法,因为我认为在做简要概述时更容易看到 在Ruby 1.9.x和2.0.0中,第一个在Ruby 1.8中不起作用,它们都构造了一个哈希键值对。在大多数情况下,它们是可互换的。参数:“String”语法是在Ruby 1.9中引入的,它是按照Ruby 1.9建模的 有一些不同之处。最大的问题是新语法不处理带引号的键。在1.8样式的哈希中,可以执行以

写作和写作有区别吗

parameter: "String"
还有更长的

:parameter => "String"
没有区别

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


在Ruby 1.9.x和2.0.0中,第一个在Ruby 1.8中不起作用,它们都构造了一个哈希键值对。在大多数情况下,它们是可互换的。
参数:“String”
语法是在Ruby 1.9中引入的,它是按照Ruby 1.9建模的

有一些不同之处。最大的问题是新语法不处理带引号的键。在1.8样式的哈希中,可以执行以下操作:

:"multi word key" => some_value
在1.9样式的哈希中,这是一个语法错误:

"multi word key": some_value

这只是一种语法上的糖分

如果您在irb中看到Ruby 1.8.7

1.8.7 :004 > {:name => 'String'}
 => {:name=>"String"}
和1.9.3

1.9.3p392 :002 > {name: 'String'}
 => {:name=>"String"} 

两者都返回相同的格式。

没有区别。除了个人喜好。@Sergio:如果你
'ha':6
$set:{p:11}
,会发生什么?@muistooshort:嗯,他问的是符号。有符号-没有区别:)@Sergio:
:'ha'
:$set
都是符号,像
:$set
这样的东西在使用MongoDB时很常见…@muistooshort:我知道。我应该给出更笼统的回答。这就是为什么我留下了一条评论(我现在可能应该删除)。不正确,一些符号仅在hashrocket语法中有效。如果哈希具有非符号键,则还必须使用hashrocket。