맵 선언 및 접근
Coddy Lua 여정의 Luau 소개 섹션에 포함된 레슨 — 73개 중 16번째.
타입이 지정된 `map`을 `declare`하는 것은 기존에 작성하던 테이블 생성자와 비슷해 보입니다. 타입 어노테이션을 통해 `key`와 값의 타입을 명확하게 지정할 수 있습니다:
local stock: {[string]: number} = {apples = 12, bananas = 5}읽기 및 쓰기는 익숙한 인덱싱 방식을 사용합니다. 유효한 식별자인 `key`의 경우, stock.apples와 stock["apples"]는 동일한 `entry`에 접근합니다. 대괄호 형태는 공백이 포함된 `key`나 변수에 저장된 `key`도 처리할 수 있습니다:
stock["cherries"] = 20 -- 새 항목 추가
stock.bananas = 8 -- 기존 항목 업데이트
print(stock["apples"]) -- 12
print(stock["plums"]) -- nil — 설정된 적 없음타입 체커는 모든 쓰기 작업을 감시합니다: "many"는 `number`가 아니기 때문에 stock["apples"] = "many"는 오류로 표시되며, `key`는 `string`이어야 하므로 숫자를 `key`로 사용하는 것도 오류로 표시됩니다.
`entry`를 삭제하려면 해당 `key`에 nil을 할당하면 됩니다 — stock["bananas"] = nil은 이를 `entirely` 삭제하며, 이후 읽기에서는 nil을 반환합니다. 별도의 삭제 함수는 없습니다; 이것이 표준 Lua 관용구이며, `map`에서도 여전히 타입 검사가 올바르게 동작합니다.
챌린지
쉬움apples = 12 및 bananas = 5로 초기화된 typed map stock: {[string]: number}를 declare하세요. 그런 다음:
- 값이
20인 새entrycherries를add하세요 bananas를8로update하세요
마지막으로 다음을 각각 별도의 줄에 print하세요:
apples의stockbananas의stockcherries의stockplums의stock— 설정한 적 없는key
직접 해보기
-- 여기에 코드를 작성하세요
-- 1) stock: {[string]: number}을 apples = 12, bananas = 5로 선언
-- 2) cherries = 20을 추가하고, bananas를 8로 업데이트
-- 3) apples, bananas, cherries, 그다음 plums를 출력
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.