Menu
Coddy logo textTech

해시 수정하기

Coddy Ruby 여정의 기초 섹션에 포함된 레슨 — 88개 중 75번째.

해시는 생성된 후에도 정적이지 않습니다. 프로그램이 실행되는 동안 새로운 키-값 쌍을 추가하고, 기존 값을 업데이트하며, 항목을 제거할 수 있습니다.

새로운 쌍을 추가하거나 기존 값을 업데이트하려면 대괄호를 사용하여 키에 할당합니다:

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

챌린지

쉬움

네 줄의 입력을 읽으십시오:

  1. 학생 이름 (문자열)
  2. 초기 성적 (정수)
  3. 업데이트할 새로운 성적 (정수)
  4. key:value 형식의 새로운 키-값 쌍 (예: subject:Math)

다음의 초기 키-값 쌍을 가진 student라는 해시를 생성하십시오:

  • "name": 학생 이름에 매핑
  • "grade": 초기 성적에 매핑 (정수형)

그런 다음 아래의 수정을 수행하십시오:

  1. "grade" 키를 새로운 성적 값으로 업데이트합니다.
  2. 네 번째 입력에서 받은 키와 값을 사용하여 새로운 키-값 쌍을 추가합니다 (값은 문자열로 유지되어야 합니다).
  3. 해시에서 "name" 키를 삭제하고 삭제된 값을 저장합니다.

첫 번째 줄에는 삭제된 이름을 출력하고, 두 번째 줄에는 최종 해시를 출력하십시오.

예를 들어, 입력이 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"}

치트 시트

해시에 새로운 키-값 쌍을 추가하거나 기존 값을 업데이트하려면 대괄호를 사용합니다:

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 메서드는 제거된 값을 반환합니다:

removed_age = person.delete("age")

puts removed_age  # 출력: 25

존재하지 않는 키를 삭제하려고 하면, Ruby는 에러를 발생시키지 않고 nil을 반환합니다.

직접 해보기

# 입력 읽기
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실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨