Hash
ハッシュ(データ型とリテラル)
意味 キーと値のペアを格納
Hashとは?
Hashは、キーと値のペアを格納するデータ構造です。各キーは一意で、それに対応する値を素早く取り出すことができます。配列と似ていますが、インデックスの代わりにキーを使って要素にアクセスします。
Hashの具体的な使い方
ハッシュの基本操作
# ハッシュの作成と基本操作
person = { 'name' => 'Alice', 'age' => 30 }
puts "Person: #{person}"
puts "Name: #{person['name']}"
# 要素の追加と更新
person['job'] = 'Engineer'
puts "Updated person: #{person}"
# シンボルをキーとして使用
user = { name: 'Bob', age: 25 }
puts "User: #{user}"
puts "Age: #{user[:age]}"
👇出力結果
Person: {"name"=>"Alice", "age"=>30}
Name: Alice
Updated person: {"name"=>"Alice", "age"=>30, "job"=>"Engineer"}
User: {:name=>"Bob", :age=>25}
Age: 25
この例では、ハッシュの基本的な操作を示しています。文字列とシンボルをキーとして使用したハッシュの作成、要素の追加と更新、値へのアクセスなどを行っています。
ハッシュのメソッド使用例
scores = { Alice: 95, Bob: 80, Charlie: 92 }
# キーと値の一覧を取得
puts "Keys: #{scores.keys}"
puts "Values: #{scores.values}"
# キーと値のペアを反復処理
scores.each do |name, score|
puts "#{name} scored #{score}"
end
# 特定の条件で選択
high_scorers = scores.select { |name, score| score >= 90 }
puts "High scorers: #{high_scorers}"
# ハッシュの変換
grade_scores = scores.transform_values do |score|
case score
when 90..100 then 'A'
when 80...90 then 'B'
when 70...80 then 'C'
else 'F'
end
end
puts "Grades: #{grade_scores}"
👇出力結果
Keys: [:Alice, :Bob, :Charlie]
Values: [95, 80, 92]
Alice scored 95
Bob scored 80
Charlie scored 92
High scorers: {:Alice=>95, :Charlie=>92}
Grades: {:Alice=>"A", :Bob=>"B", :Charlie=>"A"}
この例では、ハッシュに対する一般的なメソッドの使用法を示しています。キーと値の一覧の取得、ハッシュの反復処理、条件に基づく要素の選択、ハッシュの変換などを行っています。
Hashに関するよくある質問
RubyのHashについても学べる書籍の紹介
「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、RubyのHashやnil、String、Integer、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。
よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。
HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。
Rubyを学べる「プログラミング単語帳」アプリ
プログラミング単語帳がアプリになりました!Rubyはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。
収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。
いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。
2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!
2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!