Menu
CoddyTech

ハッシュの変更

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

ハッシュは作成後も固定ではありません。プログラムの実行中に新しいキーと値のペアを追加したり、既存の値を更新したり、項目を削除したりできます。

新しいペアを追加する場合や既存の値を更新する場合は、角括弧を使ってキーに値を代入します。

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

person["city"] = "Paris"      # 新しいキーと値のペアを追加する
person["age"] = 26            # 既存の値を更新する

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

キーが存在する場合、値は置き換えられます。存在しない場合は、新しいペアがハッシュに追加されます。

キーと値のペアを削除するには、削除したいキーを指定してdeleteメソッドを使います。

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

person.delete("city")

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

deleteメソッドは削除された値を返すため、その値を使用する必要がある場合に便利です。

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

removed_age = person.delete("age")

puts removed_age  # 出力: 25

存在しないキーを削除しようとしても、Rubyはエラーを発生させずに単にnilを返します。

challenge icon

チャレンジ

簡単

入力を4行読み込みます。

  1. 学生の名前(文字列)
  2. 最初の成績(整数)
  3. 更新後の成績(整数)
  4. key:value形式の新しいキーと値のペア(例:subject:Math)

次の初期キーと値のペアを持つ、studentというハッシュを作成します。

  • "name"に学生の名前を対応させる
  • "grade"に最初の成績(整数)を対応させる

次に、以下の変更を行います。

  1. "grade"キーの値を新しい成績に更新する
  2. 4行目の入力からキーと値を取り出し、新しいキーと値のペアを追加する(値は文字列のままにします)
  3. ハッシュから"name"キーを削除し、削除した値を保存する

削除した名前を1行目に出力し、その後、最終的なハッシュを2行目に出力します。

たとえば、入力がAlice、85、92、subject:Mathの場合、出力は次のようになります。

Alice
{"grade"=>92, "subject"=>"Math"}

入力がBob、70、75、status:passingの場合、出力は次のようになります。

Bob
{"grade"=>75, "status"=>"passing"}

入力がCharlie、100、95、note:excellentの場合、出力は次のようになります。

Charlie
{"grade"=>95, "note"=>"excellent"}

自分で試してみよう

# 入力を読み込む
name = gets.chomp
initial_grade = gets.to_i
new_grade = gets.to_i
key_value_pair = gets.chomp

# TODO: 以下にコードを書く
# 1. "name" と "grade" をキーに持つ 'student' というハッシュを作成する
# 2. "grade" キーの値を新しい成績の値に更新する
# 3. key_value_pair を解析してハッシュに追加する
# 4. "name" キーを削除し、削除した値を保存する

# 削除した名前を出力する
puts removed_name
# 最終的なハッシュを出力する
puts student
quiz icon腕試し

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

基礎のすべてのレッスン

自分で練習してみよう: Rubyオンラインコンパイラ