我有一个看起来像这样的ruby数据结构:
my_item
=> {:data_id=>"some id",
:description=>
"some description",
:time=>"some time",
:name=>"some name"}
我认为这是一个哈希,但如果我尝试访问数据,我会得到nil
。 e.g:
puts my_item['name']
=> nil
如何访问元素?
答案 0 :(得分:2)
Strings和symbols不是一回事。如果使用符号(:name
)作为索引,则无法使用字符串访问它:
foo = { :name => 'Hello' }
puts foo[:name] # => "Hello"
puts foo['name'] # => nil
同样,如果使用字符串('name'
),则不能使用符号来访问元素:
bar = { 'name' => 'World' }
puts bar[:name] # => nil
puts bar['name'] # => "World"
请注意,Ruby on Rails 允许字符串和符号在某种程度上互换 - 请参阅HashWithIndifferentAccess
文档。
答案 1 :(得分:1)
my_item
是一个哈希,其键是所有符号(例如:name
),而您使用字符串('name'
)作为键。
my_item[:name]
# => "some name"