如何访问哈希数组中的哈希值?
问题描述:
我有名为散列的数组entities
如何访问哈希数组中的哈希值?
这里是看看阵列:
p "entities"
y entities
p "entities[0]"
y entities[0]
p "entities[1]"
y entities[1]
p "entities[2]"
y entities[2]
输出:
"entities"
--- |
---
- :text: Berlin
:links:
- http://dbpedia.org/resource/Berlin
- :text: Jan Karski
:links:
- http://dbpedia.org/resource/Jan_Karski
- :text: God
:links:
- http://dbpedia.org/resource/God
"entities[0]"
--- "-"
"entities[1]"
--- "-"
"entities[2]"
--- "-"
我无法弄清楚如何访问各个散列。当我做p entities[0]
时应该有什么东西出来?
答
是entities.kind_of? String
是真的吗?它看起来像实体实际上是一个YAML字符串。因此,实体[0/1/2]是YAML的前三个破折号。
答
该副本是否正确?输出,粘贴到IRB会话出来作为一个单独的字符串,而不是一个数组:
ruby-1.9.2-p0 > YAML::parse("--- | ruby-1.9.2-p0"> --- ruby-1.9.2-p0"> - :text: Berlin ruby-1.9.2-p0"> :links: ruby-1.9.2-p0"> - http://dbpedia.org/resource/Berlin ruby-1.9.2-p0"> - :text: Jan Karski ruby-1.9.2-p0"> :links: ruby-1.9.2-p0"> - http://dbpedia.org/resource/Jan_Karski ruby-1.9.2-p0"> - :text: God ruby-1.9.2-p0"> :links: ruby-1.9.2-p0"> - http://dbpedia.org/resource/God ruby-1.9.2-p0"> ").value => "--- \n- :text: Berlin\n :links: \n - http://dbpedia.org/resource/Berlin\n- :text: Jan Karski\n :links: \n - http://dbpedia.org/resource/Jan_Karski\n- :text: God\n :links: \n - http://dbpedia.org/resource/God\n"
答
你的散列entitles
可能不是真正的数组。 看看这个:
irb(main):001:0> e = [{:a=>1,:b=>2},{:c=>3,:d=>4}]
irb(main):002:0> p e
[{:a=>1, :b=>2}, {:c=>3, :d=>4}]
尝试entitles.class
和entitles[0].class
就是这样,我忘了连载补充:实体模型。感谢您的帮助,我会标记为正确的 – ben 2011-03-10 03:44:00