ハッシュの作成
CoddyのRubyジャーニー「基礎」セクションの一部。レッスン 73/88。
配列は順序付きリストの保存に便利ですが、数値インデックスではなく、特定のラベルに値を対応付けたい場合もあります。ハッシュはキーと値のペアとしてデータを保存し、各キーが対応する値を指します。
ハッシュを作成するには、キーと値を中括弧で囲み、=>(ハッシュロケットと呼ばれます)で区切ります。
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person # 出力: {"name"=>"Alice", "age"=>25, "city"=>"Paris"}ハッシュ内の各キーは一意でなければなりませんが、値は重複してもかまいません。キーと値には、文字列、数値、配列など、任意のデータ型を使用できます。
空のハッシュを作成して、後からペアを追加することもできます。
scores = {}
puts scores # 出力: {}ハッシュは、名前と価格を持つ商品や、メールアドレスとパスワードを持つユーザーのように、名前付き属性を持つ現実世界のオブジェクトを表すのに最適です。位置を覚えておく必要がある配列とは異なり、ハッシュでは意味のある名前を使ってデータを整理できます。
チャレンジ
簡単入力を3行読み取ります。
- 本のタイトル(文字列)
- 著者名(文字列)
- 出版年(整数)
ハッシュロケット構文(=>)を使って、3つのキーと値のペアを持つbookというハッシュを作成します。
"title"には本のタイトルを対応させます"author"には著者名を対応させます"year"には出版年を対応させます(整数として)
putsを使ってハッシュを出力します。
たとえば、入力がRuby Basics、Jane Smith、2023の場合、出力は次のようになります。
{"title"=>"Ruby Basics", "author"=>"Jane Smith", "year"=>2023}入力がThe Great Gatsby、F. Scott Fitzgerald、1925の場合、出力は次のようになります。
{"title"=>"The Great Gatsby", "author"=>"F. Scott Fitzgerald", "year"=>1925}入力が1984、George Orwell、1949の場合、出力は次のようになります。
{"title"=>"1984", "author"=>"George Orwell", "year"=>1949}自分で試してみよう
# 入力を読み取る
title = gets.chomp
author = gets.chomp
year = gets.to_i
# TODO: ハッシュロケット構文 (=>) を使い、3つのキーと値のペアを持つ 'book' という名前のハッシュを作成する
# キーは "title", "author", "year" にする
# ハッシュを出力する
puts bookこのレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Rubyオンラインコンパイラ