Menu
Coddy logo textTech

ハッシュの要素へのアクセス

CoddyのRubyジャーニー「基礎」セクションの一部 — レッスン 74/88。

ハッシュの作成方法を理解したところで、その中に格納されている値を取得する必要があります。数値インデックスを使用する配列とは異なり、ハッシュはキーを使用して値にアクセスします。

対応する値を取得するには、キーを角括弧の中に配置します。

person = {"name" => "Alice", "age" => 25, "city" => "Paris"}

puts person["name"]  # 出力: Alice
puts person["age"]   # 出力: 25

キーは、ハッシュを作成したときに使用したものと完全に一致する必要があります。存在しないキーにアクセスしようとすると、Rubyはnilを返します:

person = {"name" => "Alice", "age" => 25}

puts person["country"]  # 出力: (なし - nil)

また、キーが見つからない場合にデフォルト値を指定できる fetch メソッドを使用することもできます:

person = {"name" => "Alice"}

puts person.fetch("name", "Unknown")     # 出力: Alice
puts person.fetch("country", "Unknown")  # 出力: Unknown

これは、nilを受け取る代わりに、欠落しているキーを適切に処理したい場合に便利です。

challenge icon

チャレンジ

簡単

4行の入力を読み込んでください:

  1. 製品名 (文字列)
  2. 価格 (浮動小数点数)
  3. 在庫数 (整数)
  4. 検索するキー (文字列)

以下のキーと値のペアを持つ product という名前のハッシュを作成してください:

  • "name": 製品名に対応
  • "price": 価格(浮動小数点数)に対応
  • "stock": 在庫数(整数)に対応

次に、fetch メソッドを使用して、4番目の入力で提供されたキーの値を取得してください。キーが存在しない場合は、デフォルト値として "Not found" を使用してください。その結果を出力します。

例えば、入力が Laptop999.9915price の場合、出力は以下のようになります:

999.99

入力が Keyboard49.99100name の場合、出力は以下のようになります:

Keyboard

入力が Mouse29.9950color の場合、出力は以下のようになります:

Not found

入力が Monitor299.08stock の場合、出力は以下のようになります:

8

チートシート

ハッシュの値にアクセスするには、角括弧の中にキーを指定します:

person = {"name" => "Alice", "age" => 25, "city" => "Paris"}

puts person["name"]  # 出力: Alice
puts person["age"]   # 出力: 25

キーが存在しない場合、Rubyは nil を返します:

person = {"name" => "Alice", "age" => 25}

puts person["country"]  # 出力: (何もなし - nil)

存在しないキーに対してデフォルト値を指定するには、fetch メソッドを使用します:

person = {"name" => "Alice"}

puts person.fetch("name", "Unknown")     # 出力: Alice
puts person.fetch("country", "Unknown")  # 出力: Unknown

自分で試してみよう

# 入力を読み込む
product_name = gets.chomp
price = gets.chomp.to_f
quantity = gets.chomp.to_i
key_to_lookup = gets.chomp

# TODO: 以下にコードを記述してください
# "name"、"price"、"stock" というキーを持つ 'product' というハッシュを作成します
# 次に、fetch メソッドを使用して key_to_lookup の値を取得します
# キーが存在しない場合のデフォルト値として "Not found" を使用してください


# 結果を出力
puts result
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン