Menu
Coddy logo textTech

요소 추가 및 읽기

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

이미 table.inserttable.remove를 사용하여 Lua 테이블을 확장하고 축소해 보았을 것입니다 — 두 함수 모두 타입이 지정된 배열에서도 정확히 동일하게 작동합니다. 차이점은 이제 Luau가 삽입하는 항목을 검사한다는 점입니다: {number} 배열에 string을 추가하는 경우 실행 중에 혼란스러워하는 플레이어가 발견하는 것이 아니라 타이핑하는 동안 즉시 감지됩니다.

local queue: {string} = {"save", "load"}
table.insert(queue, "quit")      -- 끝에 추가
table.insert(queue, 1, "help")   -- 위치 1에 삽입하고 나머지를 밀어냄
local last = table.remove(queue) -- 마지막 요소를 제거하고 반환함

table.remove(t)는 마지막 element를 꺼내어 반환합니다; table.remove(t, 1)은 first element를 제거하고 나머지 요소를 전부 down 방향으로 이동시킵니다. 배열의 타입이 {string}으로 지정되어 있으므로 Luau는 반환된 값이 string임을 알고 있습니다.

읽기는 일반 Lua만큼이나 유연합니다: 아무것도 들어있지 않은 인덱스 — queue[0], queue[-1], 또는 #queue를 넘어선 인덱스 — 는 오류 없이 nil로 평가됩니다. 에러가 발생하지 않으므로 존재하는지 확실하지 않은 값을 사용하기 전에는 nil인지 check하세요.

도구 상자에 추가할 한 가지 도구가 더 있습니다: table.freeze(t)는 테이블을 런타임에 읽기 전용으로 만듭니다 — 이후 이를 수정하려는 모든 시도는 에러를 발생시킵니다. 생성 후 절대 변경되어서는 안 되는 상수 데이터(설정, 고정된 레벨 목록)를 위한 Luau의 솔루션입니다.

challenge icon

챌린지

쉬움

"save""load"로 초기화된 타입 지정 배열 queue: {string}를 만드세요. 그런 다음:

  1. table.insert를 사용해 "<code>quit"를 추가(append)하세요
  2. 위치 1에 "<code>help"를 삽입(insert)하세요
  3. table.remove마지막 명령을 제거(remove)하고, 반환된 값을 변수에 저장하세요

마지막으로, 각각 별도의 줄에 출력하세요:

  1. 제거된 명령
  2. 남은 명령의 수
  3. 큐의 첫 번째 명령
  4. 아무것도 들어있지 않은 슬롯인 queue[10]

직접 해보기

-- 여기에 코드를 작성하세요
-- 1) queue: {string}을 "save"와 "load"로 선언
-- 2) 지침의 정확한 텍스트를 추가하고, 위치 1에 지침의 정확한 텍스트를 삽입
-- 3) 마지막 명령을 제거한 다음, 네 개의 값을 출력
quiz icon실력 점검

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

Luau 소개의 모든 레슨

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