ハッシュの要素へのアクセス
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を受け取る代わりに、欠落しているキーを適切に処理したい場合に便利です。
チャレンジ
簡単4行の入力を読み込んでください:
- 製品名 (文字列)
- 価格 (浮動小数点数)
- 在庫数 (整数)
- 検索するキー (文字列)
以下のキーと値のペアを持つ product という名前のハッシュを作成してください:
"name": 製品名に対応"price": 価格(浮動小数点数)に対応"stock": 在庫数(整数)に対応
次に、fetch メソッドを使用して、4番目の入力で提供されたキーの値を取得してください。キーが存在しない場合は、デフォルト値として "Not found" を使用してください。その結果を出力します。
例えば、入力が Laptop、999.99、15、price の場合、出力は以下のようになります:
999.99入力が Keyboard、49.99、100、name の場合、出力は以下のようになります:
Keyboard入力が Mouse、29.99、50、color の場合、出力は以下のようになります:
Not found入力が Monitor、299.0、8、stock の場合、出力は以下のようになります:
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このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。