我使用散列来存储解析网站所需的一些数据,包括 URL 和使用 Nokogiri 解析网站标题的具体说明。然而,我使用的嵌套哈希被解释为一个数组。
webSite = { :everdoH =>
{ :url => "http://www.everardoherrera.com/" ,
:instruc=> Proc.new PageToParse.css('.contentheading').css('.contentpagetitle')}
}
如果我这样做:
puts webSite.class
webSite.each {|aSite| puts aSite.class }
我明白了:
>> Hash
>> Array
因此我不能使用任何哈希索引属性。
知道为什么我在嵌套部分没有得到类类型 Hash 吗?
最佳答案
因为 Hash#each
, Hash#each_pair
传递键值对(数组)作为参数。
webSite = { :everdoH =>
{ :url => "http://www.everardoherrera.com/" ,
:instruc=> 'blah'
}
}
webSite.each { |aSite| p aSite }
# => [:everdoH, {:url=>"http://www.everardoherrera.com/", :instruc=>"blah"}]
尝试以下方法之一(打印值类,而不是键值对):
webSite.each {|aSite| puts aSite[1].class }
# => Hash
webSite.each {|key, aSite| puts aSite.class }
# => Hash
webSite.each_value {|aSite| puts aSite.class }
# => Hash
关于ruby-on-rails - 嵌套哈希解释为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21978148/