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。