ハッシュを1回繰り返してから内容を変更せずにもう一度やり直した場合、キーは同じ順序で表示されますか?上記許可されている場合は、変更されていない場合、イテレーション間でハッシュの順序が保持されますか?
> h = {'a' => 1, 'b' => 2, 'c' => 3}
> 100_000.times.map { h.to_s == h.to_s }.all?
=> true
別の質問を、私はすべての新しいキーを追加することなく、値のみを変更し、それを反復処理し、キーの順序があること持つことができます。
は簡単なテストでは同じくらい示唆します変わらない?
このPythonの質問に似:私は要素が完全に指定された順序を持っているかどうかに興味がないんだけど、提案複製、変更することなく二つの連続反復が同じシーケンスを提供することを唯一の制限とは異なりDo dicts preserve iteration order if they are not modified?
。
どちらの回答状態でも、挿入順序は維持されます。これは、Hashクラスの中に目に見えないタイムスタンプを許さない限り、「順序付けられた」とは「並べ替えられた」ことを意味する人々を混乱させます。 –
[Ruby:Hash.keysメソッドとHash.valuesメソッドから返されるキー/値の順序は何ですか?](http://stackoverflow.com/questions/5208512/ruby-what-is-the-order- of-keys-values-by-hash-keys-and-hash-values-met) –