[Ruby]ハッシュについて
Ruby
ハッシュの作り方
enemies = {"レベル1" => "スライム", "レベル2" => "おばけキノコ", "レベル3" => "キャタピラー"} p enemies puts "#{enemies["レベル2"]}が現れた!" level = "レベル3の敵" puts "#{enemies[level]}が現れた!"
上記の例では、「おばけキノコが現れた!」、「キャタピラーが現れた!」と表示されます。
ハッシュの基本操作
ハッシュの個数を調べる(lengthメソッド)
enemies = {"レベル1" => "スライム", "レベル2" => "おばけキノコ", "レベル3" => "キャタピラー"} p enemies puts "#{enemies["レベル2"]}が現れた!" puts enemies.length
上記の場合、個数は3つなので3と表示されます。
ハッシュのデータを追加する方法
enemies = {"レベル1" => "スライム", "レベル2" => "おばけキノコ", "レベル3" => "キャタピラー"} p enemies puts "#{enemies["レベル2"]}が現れた!" puts enemies.length enemies["レベル4"] = "うごく石像" puts "#{enemies["レベル4"]}が現れた!" puts enemies.length
ハッシュのデータを書き換える方法
enemies = {"レベル1" => "スライム", "レベル2" => "おばけキノコ", "レベル3" => "キャタピラー"} p enemies puts "#{enemies["レベル2"]}が現れた!" puts enemies.length enemies["レベル3の敵"] = "しのサソリ" puts "#{enemies["レベル3の敵"]}が現れた!"
ハッシュのデータを削除方法(deleteメソッド)
enemies = {"レベル1" => "スライム", "レベル2" => "おばけキノコ", "レベル3" => "キャタピラー"} p enemies puts "#{enemies["レベル2"]}が現れた!" puts enemies.length enemies.delete["レベル3"] p enemies puts enemies.length
ハッシュをループで処理する方法
enemies = {"レベル1" => "スライム", "レベル2" => "おばけキノコ", "レベル3" => "キャタピラー"} enemies.each_value do |enemy| puts "#{enemy}が現れた!" end
ハッシュから値とキーを取り出す方法
enemies = {"レベル1" => "スライム", "レベル2" => "おばけキノコ", "レベル3" => "キャタピラー"} enemies.each do |level, enemy| puts "#{level}の#{enemy}が現れた!" end
ハッシュの整列
weapons = {"レイピア" => 18, "ツクヨミの剣" => 30, "ダイアモンドスピア" => 42} p weapons.sort p weapons.sort.to_h p weapons.sort_by {|k,v| v}
ハッシュのシンボル化
ハッシュをシンボル化することで見やすくすることができる
weapons = {レイピア: 18, ツクヨミの剣: 30, ダイアモンドスピア: 42} p weapons enemies = {レベル1: "スライム", レベル2: "おばけキノコ", レベル3: "キャタピラー"} enemies.each do |level, enemy| puts "#{level}の#{enemy}が現れた!" end p enemies[:レベル2]