해시 수정하기
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을 반환합니다.
챌린지
쉬움네 줄의 입력을 읽으십시오:
- 학생 이름 (문자열)
- 초기 성적 (정수)
- 업데이트할 새로운 성적 (정수)
key:value형식의 새로운 키-값 쌍 (예:subject:Math)
다음의 초기 키-값 쌍을 가진 student라는 해시를 생성하십시오:
"name": 학생 이름에 매핑"grade": 초기 성적에 매핑 (정수형)
그런 다음 아래의 수정을 수행하십시오:
"grade"키를 새로운 성적 값으로 업데이트합니다.- 네 번째 입력에서 받은 키와 값을 사용하여 새로운 키-값 쌍을 추가합니다 (값은 문자열로 유지되어야 합니다).
- 해시에서
"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이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.