我已经获得了each_value
{"B"=>#<Destination:0x2998b60 @city=#<City:0x2998bc0 @name="B", @destinations=
{"C"=>#<Destination:0x2998a28 @city=#<City:0x2998aa0 @name="C", @destinations=
{"A"=>#<Destination:0x2998920 @city=#<City:0x2998c20 @name="A", @destinations={...}>, @distance=3>}
>, @distance=2>}
>, @distance=1>}
在下面的循环中
@destinations.each_value do |dest|
puts dest.city
dest.city.all_routes_to(end_of_route, maximum_stops, stops + 1).each do |connection|
connected_routes << build_route_to(dest).connect(connection)
end
end
我没有得到的是当我运行时,我得到B,C,A
所以我认为each_value
会循环遍历它的所有子对象,但在Ruby文档中找不到它。
这个功能是如何工作的还是我错过了什么?
答案 0 :(得分:0)
不。标准each_value
方法为哈希中的每个键调用一次块,并按http://apidock.com/ruby/Hash/each_value传递值。我只能假设@destinations
被块中的代码修改或者其他东西正在生成输出。