1

私はルビーの初心者で、小さなことを試していました。これが私がしたことです。

  1. 私はirbを使用し、その中で単純なハッシュを作成しましたsampleHash = {"One" => 1, "Two" => 2, "Three" => 3}が、それが保存されると(リターンキーを押した後に表示されます)、これが得られ=> {"One"=>1, "Three"=>3, "Two"=>2}ます. また、次のように印刷すると、次のようsampleHash.each do|count, num| print "#{count}: #{num} \n" endに出力されます。

    One: 1 
    Three: 3 
    Two: 2 
    
  2. 今、私はエディタを使って試してみました。これは私が書いたものです:

    hashExample = {"One" => 1,
                   "Two" => 2,
                   "Three" => 3 }
    hashExample.each do|count, num|
      print "#{count}: #{num} \n"
    end
    

    私はこれを出力として取得します:

    Three: 3 
    Two: 2 
    One: 1
    

と をどのように保存しkeysますvaluesか? なぜさまざまな方法で印刷するのですか?ここで何が欠けていますか?

4

1 に答える 1

3

Ruby 1.9 より前のハッシュは順序付けされていません。つまり、キーをハッシュに挿入する順序は、ハッシュを反復処理したときにキーが出力される順序とは何の関係もありません。

Ruby 1.9 にアップグレードする以外に、組み込みのハッシュでこれを修正する方法はありません。キーの順序を維持するハッシュが必要な場合は、ActiveSupport::OrderedHash.

于 2012-10-04T21:05:56.907 に答える