首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用新的散列语法?

如何使用新的散列语法?
EN

Stack Overflow用户
提问于 2019-07-17 16:03:30
回答 2查看 74关注 0票数 1

我正在尝试使用新的散列语法,但它不起作用。我做错了什么?

代码语言:javascript
复制
2.6.3 :151 > hash = { duplex: duplex}
 => {:duplex=>[#<Nokogiri::XML::Element:0x1e8ee04 name="duplex"....
2.6.3 :152 > hash["duplex"]
 => nil 
2.6.3 :153 > hash = { "duplex" => duplex}
 => {"duplex"=>[#<Nokogiri::XML::Element:0x1e8ee04 name="duplex" ....
2.6.3 :154 > hash["duplex"]
 => [#<Nokogiri::XML::Element:0x1e8ee04 name="duplex" ....
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-17 16:05:34

“新的”散列语法用于索引带有符号(:key)而不是字符串('key'"key")的散列。因此,在您的示例中,请使用:

代码语言:javascript
复制
> hash = { duplex: duplex}
> hash[:duplex]
[#<Nokogiri::XML::Element:0x1e8ee04 name="duplex"...
票数 2
EN

Stack Overflow用户

发布于 2019-07-17 16:43:20

您还可以使用ActiveSupport::HashWithIndifferentAccess转换Hash,以便它支持这两种键类型。或者Hashie::Mash使它们也可以作为方法工作。

代码语言:javascript
复制
hash = Hashie::Mash.new({ duplex: duplex}) # or Hashie::Mash.new({ "duplex" => duplex }), it doesn't matter
hash[:duplex]
hash['duplex'] # same
hash.duplex # same
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57071213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档