如何在Ruby中访问此嵌套哈希键的值?

时间:2010-06-17 18:24:43

标签: ruby hash

我有以下哈希:

{:charge_payable_response=>{:return=>"700", :ns2=>"http://ws.myws.com/"}}

如何获取密钥:return的值,在此示例中为700?

3 个答案:

答案 0 :(得分:3)

如果你有:

h = {:charge_payable_response=>{:return=>"700", :ns2=>"http://ws.myws.com/"}}

然后使用:

h[:charge_payable_response][:return]
# => "700"

冒号前缀表示哈希中的键是symbol,这是一种特殊的唯一标识符:

  

Symbol对象表示Ruby解释器中的名称和一些字符串。它们是使用:name和:“string”文字语法以及各种to_sym方法生成的。无论该名称的上下文或含义如何,都将在程序执行期间为给定名称或字符串创建相同的Symbol对象。因此,如果Fred是一个上下文中的常量,另一个中的方法,以及第三个中的类,则Symbol:Fred将在所有三个上下文中都是相同的对象。

答案 1 :(得分:2)

如果:

data = { :charge_payable_response=> { :return=>"700", :ns2=>"http://ws.myws.com/" } }

然后使用获取返回值:

data[:charge_payable_response][:return]

答案 2 :(得分:0)

我会说它应该是:

hash[charge_payable_response][return]

但是,Ruby中return不是保留字吗?这可能会导致问题。