Menu
Coddy logo textTech

맵 선언 및 접근

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

형식이 지정된 map을 선언하는 방식은 지금까지 작성해 온 table 생성자와 같습니다. annotation은 key와 value의 형식을 지정할 뿐입니다:

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

읽기와 쓰기에는 익숙한 indexing을 사용합니다. 유효한 식별자인 key의 경우 stock.applesstock["apples"]는 동일한 entry에 접근합니다. 대괄호 형식은 공백이 포함된 key나 변수에 저장된 key도 처리할 수 있습니다:

stock["cherries"] = 20   -- 새 항목 추가
stock.bananas = 8        -- 기존 항목 업데이트
print(stock["apples"])  -- 12
print(stock["plums"])   -- nil — 설정된 적 없음

형식 검사기는 모든 쓰기를 확인합니다. stock["apples"] = "many""many"가 number가 아니기 때문에 오류로 표시되고, key는 string이어야 하므로 number를 key로 사용해도 오류로 표시됩니다.

entry를 삭제하려면 해당 key에 nil을 할당합니다. stock["bananas"] = nil은 entry를 entirely 제거하며, 이후 읽기에서는 nil이 반환됩니다. 별도의 delete function은 없습니다. 이것은 표준 Lua 관용구이며 map에서도 계속 type-check됩니다.

challenge icon

챌린지

쉬움

apples = 12bananas = 5로 초기화된 typed map stock: {[string]: number}을 만드세요. 그런 다음:

  1. 값이 20인 새 항목 cherries를 추가하세요
  2. bananas8로 update하세요

마지막으로 다음을 각각 별도의 줄에 print하세요:

  1. apples의 stock
  2. bananas의 stock
  3. cherries의 stock
  4. plums의 stock: never 설정한 key

직접 해보기

-- 여기에 코드를 작성하세요
-- 1) stock: {[string]: number}을 apples = 12, bananas = 5로 선언하세요
-- 2) cherries = 20을 추가하고, bananas를 8로 업데이트하세요
-- 3) apples, bananas, cherries, 그다음 plums를 출력하세요
quiz icon실력 점검

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

Luau 소개의 모든 레슨

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