Rubyのハッシュ(Hash)とは?キーと値のペアでデータを扱う基本構造
Rubyには、複数のデータをキーと値のセットで管理できる「ハッシュ(Hash)」という便利なデータ型があります。
他の言語で言う「連想配列(Associative Array)」にあたります。
ハッシュの基本構文
user = {
"name" => "さくら",
"age" => 25
}
puts user["name"] # → さくら
=>
を使って、キーと値をセットで定義します。
キーには文字列だけでなく、シンボルや数値、配列なども使用できます。
シンボルを使ったハッシュの省略記法
user = {
name: "さくら",
age: 25
}
puts user[:name] # → さくら
Rubyでは、キーにシンボルを使う場合、:name => "さくら"
を name: "さくら"
のように省略して書くことができます。
ハッシュの基本操作
user = { name: "たろう", age: 30 }
# 値の取得
puts user[:name] # → たろう
# 値の変更
user[:age] = 31
# 要素の追加
user[:gender] = "男性"
# 削除
user.delete(:name)
# キーの存在確認
puts user.key?(:age) # → true
puts user.has_key?(:name) # → false
繰り返し処理(each)
user = { name: "ゆうこ", age: 22 }
user.each do |key, value|
puts "#{key}:#{value}"
end
each
を使うことで、キーと値を1組ずつ取り出して処理できます。
mergeでハッシュを結合
a = { x: 1, y: 2 }
b = { y: 3, z: 4 }
merged = a.merge(b)
puts merged.inspect # → {:x=>1, :y=>3, :z=>4}
merge
は、重複するキーを上書きして結合します。
デフォルト値の設定
h = Hash.new("なし")
puts h[:foo] # → なし
ハッシュに存在しないキーを参照したときのデフォルト値を指定することも可能です。
キーと値の一覧取得
hash = { a: 1, b: 2, c: 3 }
puts hash.keys.inspect # → [:a, :b, :c]
puts hash.values.inspect # → [1, 2, 3]
ハッシュの使いどころ
- ユーザー情報など、名前付きのデータをまとめるとき
- オプションや設定の管理
- キーワード引数の受け渡し
まとめ
Rubyのハッシュ(Hash)は、キーと値の組み合わせでデータを整理・操作できる強力なデータ構造です。
シンボルをキーに使うことで、可読性とパフォーマンスが向上します。
基本の操作(追加・取得・削除・繰り返し)をマスターすれば、さまざまな場面でハッシュを活用できるようになります。