1

空の hash を作成するchickensと、キーと値のペアが徐々に追加されます。

chickens = {} 
chickens.merge!("Davison"=>"plucky")
chickens.merge!("Mortimer"=>"sullen")
chickens.merge!("Chauncey"=>"forlorn") 

for name,mood in chickens do puts "#{name}: #{mood}" end

生産する

Mortimer: sullen
Chauncey: forlorn
Davison: plucky

しかし、私はこれを望んでいません。追加された順序でニワトリを循環させるにはどうすればよいですか?

4

2 に答える 2

2

手短に言えば、Ruby を更新してください。Ruby 1.9 は何年も前のもので、思いどおりに動作します (現在の Ruby 2.0 と同様)。古い、サポートされていない Ruby に固執する場合は、gem を介して利用できる OrderedHash クラスがあります。

gem install orderedhash

コードは次のようになります。

require 'rubygems'
require 'orderedhash'

chickens = OrderedHash.new
# The rest stays the same

繰り返しますが、代わりに Ruby インストールをアップグレードすることをお勧めします。

PS次のようにハッシュを反復処理すると、コードはよりRubyに似たものになります。

chickens.each do |name, mood|
  puts "#{name}: #{mood}"
end
于 2013-06-22T05:54:53.327 に答える