[Ruby]ハッシュについて

ハッシュの作り方

[ruby] enemies = {"レベル1" => "スライム", "レベル2" => "おばけキノコ", "レベル3" => "キャタピラー"} p enemies puts "#{enemies["レベル2"]}が現れた!" level = "レベル3の敵" puts "#{enemies[level]}が現れた!" [/ruby]

上記の例では、「おばけキノコが現れた!」、「キャタピラーが現れた!」と表示されます。

ハッシュの基本操作

ハッシュの個数を調べる(lengthメソッド)

[ruby] enemies = {"レベル1" => "スライム", "レベル2" => "おばけキノコ", "レベル3" => "キャタピラー"} p enemies puts "#{enemies["レベル2"]}が現れた!" puts enemies.length [/ruby]

上記の場合、個数は3つなので3と表示されます。

ハッシュのデータを追加する方法

[ruby] enemies = {"レベル1" => "スライム", "レベル2" => "おばけキノコ", "レベル3" => "キャタピラー"} p enemies puts "#{enemies["レベル2"]}が現れた!" puts enemies.length enemies["レベル4"] = "うごく石像" puts "#{enemies["レベル4"]}が現れた!" puts enemies.length [/ruby]

ハッシュのデータを書き換える方法

[ruby] enemies = {"レベル1" => "スライム", "レベル2" => "おばけキノコ", "レベル3" => "キャタピラー"} p enemies puts "#{enemies["レベル2"]}が現れた!" puts enemies.length enemies["レベル3の敵"] = "しのサソリ" puts "#{enemies["レベル3の敵"]}が現れた!" [/ruby]

ハッシュのデータを削除方法(deleteメソッド)

[ruby] enemies = {"レベル1" => "スライム", "レベル2" => "おばけキノコ", "レベル3" => "キャタピラー"} p enemies puts "#{enemies["レベル2"]}が現れた!" puts enemies.length enemies.delete["レベル3"] p enemies puts enemies.length [/ruby]

ハッシュをループで処理する方法

[ruby] enemies = {"レベル1" => "スライム", "レベル2" => "おばけキノコ", "レベル3" => "キャタピラー"} enemies.each_value do |enemy| puts "#{enemy}が現れた!" end [/ruby]

ハッシュから値とキーを取り出す方法

[ruby] enemies = {"レベル1" => "スライム", "レベル2" => "おばけキノコ", "レベル3" => "キャタピラー"} enemies.each do |level, enemy| puts "#{level}の#{enemy}が現れた!" end [/ruby]

ハッシュの整列

[ruby] weapons = {"レイピア" => 18, "ツクヨミの剣" => 30, "ダイアモンドスピア" => 42} p weapons.sort p weapons.sort.to_h p weapons.sort_by {|k,v| v} [/ruby]

ハッシュのシンボル化

ハッシュをシンボル化することで見やすくすることができる

[ruby] weapons = {レイピア: 18, ツクヨミの剣: 30, ダイアモンドスピア: 42} p weapons enemies = {レベル1: "スライム", レベル2: "おばけキノコ", レベル3: "キャタピラー"} enemies.each do |level, enemy| puts "#{level}の#{enemy}が現れた!" end p enemies[:レベル2] [/ruby]