ハッシュの作り方
[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]