Menu
CoddyTech

요소 추가 및 읽기

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

이미 table.insert와 table.remove로 Lua 테이블의 크기를 늘리고 줄이고 있습니다. 두 함수는 타입이 지정된 배열에서도 똑같이 작동합니다. 다른 점은 이제 Luau가 삽입하는 값의 타입을 확인한다는 것입니다. {number} 배열에 문자열을 넣으면 혼란스러운 플레이어가 실행 중에 문제를 발견하는 것이 아니라, 코드를 입력하는 동안 오류로 표시됩니다.

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

table.remove(t)는 마지막 요소를 꺼내서 돌려줍니다. table.remove(t, 1)은 첫 번째 요소를 제거하고 나머지 요소를 모두 한 칸씩 앞으로 옮깁니다. 배열의 타입이 {string}이므로 Luau는 반환되는 값이 문자열임을 알고 있습니다.

읽기는 일반 Lua에서처럼 오류 없이 처리됩니다. 값이 없는 인덱스인 queue[0], queue[-1] 또는 #queue보다 큰 인덱스를 읽으면 조용히 nil을 반환합니다. 오류는 발생하지 않으므로, 존재 여부가 확실하지 않은 값을 사용하기 전에 nil인지 확인하세요.

challenge icon

챌린지

쉬움

타입이 지정된 동작 목록을 늘리고 줄여 보세요.

  1. local moves: {string} = {"jump", "run"}을 선언하세요.
  2. table.insert를 사용해 "duck"을 추가한 다음, 위치 1에 "crawl"을 삽입하세요.
  3. table.remove(moves)의 결과를 local removed에 저장한 다음, removed, #moves, moves[1], moves[10]을 출력하세요.

코드 실행을 누르세요. 출력에는 duck, 3, crawl, nil이 표시됩니다.

직접 해보기

-- 1) "jump"와 "run"을 사용해 moves: {string}을 선언하세요
-- 2) "duck"을 추가하고 위치 1에 "crawl"을 삽입하세요
-- 3) 마지막 동작을 제거한 다음 네 값을 출력하세요

Luau 소개의 모든 레슨

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