0

入れ子になったオブジェクトの下にあります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 ドキュメントでこれを見つけることができませんでした。

これがこの関数の仕組みですか、それとも何か不足していますか?

4

1 に答える 1

0

いいえ。標準メソッドは、 http://apidock.com/ruby/Hash/each_valueeach_valueに従って、ハッシュ内のキーごとに 1 回ブロックを呼び出し、値を渡します。ブロック内のコードによって変更されているか、他の何かが出力を生成しているとしか思えません。@destinations

于 2013-11-03T22:34:28.660 に答える