ハッシュの要素へのアクセス
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番目の入力で提供されたキーの値を取得します。キーが存在しない場合は、デフォルト値として "<code>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自分で試してみよう
# 入力を読み込む
product_name = gets.chomp
price = gets.chomp.to_f
quantity = gets.chomp.to_i
key_to_lookup = gets.chomp
# TODO: 以下にコードを書いてください
# 'product' というハッシュを作成し、キー "name"、"price"、"stock" を持たせる
# 次に fetch メソッドを使って key_to_lookup の値を取得する
# キーが存在しない場合は、指示の正確なテキストをデフォルト値として使う
# 結果を出力する
puts resultこのレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Rubyオンラインコンパイラ