Menu
Coddy logo textTech

ハッシュのキーとしてのシンボル

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

これまで、ハッシュロケット構文を使用して文字列をハッシュのキーとして使用してきました。しかし、Ruby開発者は一般的に、代わりにシンボルをキーとして使用します。これにより、よりクリーンで効率的なアプローチが可能になります。

以前に学習したシンボルを覚えていますか?これらはコロンで始まる、軽量で不変の識別子です。シンボルをキーとして使用する場合、Rubyは特別な短縮構文を提供します:

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

puts person  # 出力: {:name=>"Alice", :age=>25, :city=>"Paris"}

name::name => を置き換えていることに注目してください。この短縮記法は、キーがシンボルの場合にのみ機能します。値にアクセスするには、角括弧でシンボルを使用します:

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

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

エントリの追加と変更は、同じ方法で行います:

person = {name: "Alice"}

person[:city] = "Paris"
person[:name] = "Bob"

puts person  # 出力: {:name=>"Bob", :city=>"Paris"}

シンボルは、文字列よりも比較が速く、メモリの使用量も少ないため、ハッシュキーとして好まれます。このパターンはRubyのコードの至る所で見られるので、慣れておく価値があります。

challenge icon

チャレンジ

簡単

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

  1. 車のブランド (文字列)
  2. モデル名 (文字列)
  3. 年式 (整数)

シンボルの短縮構文(例:key: value)を使用して、以下のキーと値のペアを持つcarという名前のハッシュを作成してください:

  • :brand:車のブランドに対応
  • :model:モデル名に対応
  • :year:年式(整数)に対応

その後、以下の操作を実行してください:

  1. :modelキーの値を出力する
  2. 新しいキー:colorに値"black"を追加する
  3. :yearキーの現在の値に1を加えて更新する
  4. 最終的なハッシュを出力する

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

Camry
{:brand=>"Toyota", :model=>"Camry", :year=>2021, :color=>"black"}

入力がHondaCivic2018の場合、出力は以下のようになります:

Civic
{:brand=>"Honda", :model=>"Civic", :year=>2019, :color=>"black"}

入力がFordMustang2023の場合、出力は以下のようになります:

Mustang
{:brand=>"Ford", :model=>"Mustang", :year=>2024, :color=>"black"}

チートシート

Rubyは、シンボルをキーとするハッシュを作成するための短縮構文を提供しています。

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

これは、シンボルを用いたハッシュロケット構文を使用するのと同等です。

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

シンボルキーを持つハッシュから値にアクセスするには、シンボルを指定した角括弧を使用します。

puts person[:name]  # Outputs: Alice
puts person[:age]   # Outputs: 25

エントリの追加や変更は、文字列キーの場合と同じように機能します。

person[:city] = "Paris"  # 新しいキーと値のペアを追加
person[:name] = "Bob"    # 既存の値を変更

シンボルは文字列よりも比較が速く、メモリ使用量も少ないため、ハッシュのキーとして好まれます。

自分で試してみよう

# 入力を読み込む
brand = gets.chomp
model = gets.chomp
year = gets.chomp.to_i

# TODO: 以下にコードを記述してください
# 1. :brand, :model, :year をキーに持つハッシュ 'car' をシンボルの省略記法で作成してください

# 2. :model キーの値を表示してください

# 3. 新しいキー :color を値 "black" で追加してください

# 4. :year キーの値を現在の値に1を加えて更新してください

# 5. 最終的なハッシュを表示してください
quiz icon腕試し

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

基礎のすべてのレッスン