{category}

Ruby - 基本データ構造

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に関するよくある質問

Q. ハッシュから要素を削除するには?
A. ハッシュから要素を削除するには、deleteメソッドを使用します。例:hash.delete(key) このメソッドは指定したキーに対応する要素を削除し、その値を返します。
Q. ハッシュにキーが存在するか確認するには?
A. キーの存在を確認するには、has_key?メソッド(別名:key?、include?、member?)を使用します。例:hash.has_key?(key) このメソッドは真偽値を返します。
Q. ハッシュをマージするには?
A. 2つのハッシュをマージするには、mergeメソッドを使用します。例:hash1.merge(hash2) これは新しいハッシュを返します。元のハッシュを変更する場合は、merge!メソッドを使用します。
Q. ハッシュのキーと値を入れ替えるには?
A. ハッシュのキーと値を入れ替えるには、invertメソッドを使用します。例:hash.invert これは新しいハッシュを返します。ただし、元のハッシュに重複する値がある場合、結果が予期しないものになる可能性があるので注意が必要です。

Hashが学べる書籍の紹介

「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、RubyのHashやSymbol、String、nil、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。

よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。

1日5分の暗記でプログラミンが身に付く!プログラミング単語帳 公式ストアで発売中!

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」カテゴリーが追加されましました!


関連するそのほかの単語

Symbol

名前を表す軽量なオブジェクト

種類: 特殊データ型

String

文字列を表すデータ型

種類: 基本データ型

nil

値が存在しないことを表す

種類: 特殊値

end

範囲の終了値を取得

種類: Range操作

include

モジュールの機能を取り込む

種類: モジュールとMix-in