Menu
Coddy logo textTech

해시 키로 심볼 사용하기

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

지금까지 여러분은 해시 로켓 구문(hash rocket syntax)을 사용하여 문자열을 해시 키로 사용해 왔습니다. 하지만 Ruby 개발자들은 보통 그 대신 심볼(symbol)을 키로 사용하는데, 이는 더 깔끔하고 효율적인 접근 방식을 제공합니다.

이전에 배웠던 심볼(symbol)을 기억하시나요? 심볼은 콜론(:)으로 시작하는 가볍고 불변하는 식별자입니다. 심볼을 키로 사용할 때, 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"}

심볼은 문자열보다 비교가 빠르고 메모리를 적게 사용하므로 해시 키로 선호됩니다. 루비 코드 전반에서 이러한 패턴을 자주 접하게 될 것이므로, 익숙해지는 것이 좋습니다.

challenge icon

챌린지

쉬움

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

  1. 자동차 브랜드 (문자열)
  2. 모델 이름 (문자열)
  3. 연식 (정수)

다음 키-값 쌍을 포함하는 심볼 단축 구문(예: key: value)을 사용하여 car라는 해시를 생성하십시오:

  • :brand: 자동차 브랜드에 매핑
  • :model: 모델 이름에 매핑
  • :year: 연식(정수)에 매핑

그런 다음 다음 작업을 수행하십시오:

  1. :model 키의 값을 출력하십시오
  2. 값이 "black"인 새로운 키 :color를 추가하십시오
  3. :year 키의 현재 값에 1을 더하여 업데이트하십시오
  4. 최종 해시를 출력하십시오

예를 들어, 입력값이 Toyota, Camry, 2020인 경우 출력은 다음과 같아야 합니다:

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

입력값이 Honda, Civic, 2018인 경우 출력은 다음과 같아야 합니다:

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

입력값이 Ford, Mustang, 2023인 경우 출력은 다음과 같아야 합니다:

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

치트 시트

Ruby는 심볼 키를 사용하여 해시를 생성하는 단축 구문을 제공합니다:

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

이것은 심볼과 함께 해시 로켓(hash rocket) 구문을 사용하는 것과 동일합니다:

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

심볼 키를 가진 해시에서 값에 접근하려면, 심볼과 함께 대괄호를 사용하세요:

puts person[:name]  # 출력: Alice
puts person[:age]   # 출력: 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. 값이 "black"인 새로운 키 :color를 추가하세요

# 4. :year 키의 현재 값에 1을 더하여 업데이트하세요

# 5. 최종 해시를 출력하세요
quiz icon실력 점검

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

기초의 모든 레슨