Menu
CoddyTech

맵 선언 및 접근

Coddy Lua 여정의 Luau 소개 섹션에 포함된 레슨. 80개 중 16번째.

타입이 지정된 맵을 선언하는 방법은 늘 작성해 온 테이블 생성자와 같습니다. 주석을 통해 키와 값의 타입만 지정하면 됩니다.

local stock: {[string]: number} = {apples = 12, bananas = 5}

읽기와 쓰기에는 익숙한 인덱싱 방식을 사용합니다. 유효한 식별자인 키는 stock.apples와 stock["apples"]로 같은 항목에 접근할 수 있습니다. 대괄호 형식은 공백이 포함된 키나 변수에 저장된 키에도 사용할 수 있습니다.

stock["cherries"] = 20   -- 새 항목 추가
stock.bananas = 8        -- 기존 항목 갱신
print(stock["apples"])  -- 12
print(stock["plums"])   -- nil: 설정된 적 없음

타입 검사기는 모든 쓰기를 검사합니다. stock["apples"] = "many"는 "many"가 숫자가 아니므로 오류로 표시되고, 키는 문자열이어야 하므로 숫자를 키로 사용해도 오류로 표시됩니다.

항목을 삭제하려면 해당 키에 nil을 할당합니다. stock["bananas"] = nil을 실행하면 항목이 완전히 제거되고, 나중에 읽으면 nil이 반환됩니다. 별도의 삭제 함수는 없습니다. 이는 Lua의 표준 관용구이며, 맵에서도 타입 검사를 통과합니다.

challenge icon

챌린지

쉬움

학용품의 타입이 지정된 맵을 유지하세요.

  1. local stock: {[string]: number} = {pens = 40, rulers = 15}을 선언하세요.
  2. stock["erasers"] = 25를 추가하고 rulers를 10으로 변경하세요.
  3. pens, rulers, erasers 및 glue의 재고를 한 줄에 하나씩 출력하세요.

Run Code를 누르세요. 출력에는 40, 10, 25 및 nil이 표시됩니다.

직접 해보기

-- 1) pens = 40, rulers = 15로 stock: {[string]: number}를 선언하세요
-- 2) erasers = 25를 추가하고 rulers를 10으로 변경하세요
-- 3) pens, rulers, erasers를 출력한 다음 glue를 출력하세요

Luau 소개의 모든 레슨

직접 연습해 보세요: 온라인 Luau 컴파일러