访问 ruby 数据结构的元素
Accessing elements of a ruby data structure
我有一个 ruby 数据结构,如下所示:
my_item
=> {:data_id=>"some id",
:description=>
"some description",
:time=>"some time",
:name=>"some name"}
我假设它是一个散列,但如果我尝试访问数据,我会得到 nil
。例如:
puts my_item['name']
=> nil
如何访问元素?
my_item
是一个哈希,它的键都是符号(例如:name
),而你使用的是字符串('name'
)作为键。
my_item[:name]
# => "some name"
Strings and 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 does allow strings and symbols to be interchanged to some degree - see the HashWithIndifferentAccess
文档。
我有一个 ruby 数据结构,如下所示:
my_item
=> {:data_id=>"some id",
:description=>
"some description",
:time=>"some time",
:name=>"some name"}
我假设它是一个散列,但如果我尝试访问数据,我会得到 nil
。例如:
puts my_item['name']
=> nil
如何访问元素?
my_item
是一个哈希,它的键都是符号(例如:name
),而你使用的是字符串('name'
)作为键。
my_item[:name]
# => "some name"
Strings and 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 does allow strings and symbols to be interchanged to some degree - see the HashWithIndifferentAccess
文档。