Menu
Coddy logo textTech

테이블 순회하기

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

Lua 테이블을 이미 여러 번 반복 처리해 보셨을 것입니다 — Luau는 완전히 동일한 루프를 유지하면서 루프 변수에 타입을 추가합니다. 배열의 경우, ipairs가 인덱스 1부터 #t까지 순서대로 요소를 순회하며, 두 변수 모두에 타입을 지정할 수 있습니다:

local temps: {number} = {18, 21, 19}
for day: number, temp: number in ipairs(temps) do
    print(`Day {day}: {temp}`)
end

ipairs는 첫 번째 누락된 인덱스에서 멈춘다는 점을 기억하세요 — 중간에 있는 nil 구멍은 루프를 일찍 종료시킵니다. 잘 관리된 배열에서는 거의 문제가 되지 않지만, 알고 있을 가치가 있습니다.

의 경우 pairs를 사용하며, 문자열 키를 포함한 모든 키/값 쌍을 방문합니다. {[string]: number} 맵에서 루프 변수는 자연스럽게 stringnumber가 됩니다:

local ages: {[string]: number} = {Alice = 30, Bob = 25}
for name: string, age: number in pairs(ages) do
    print(`{name} is {age}`)
end

한 가지 중요한 주의 사항: pairs는 해시 부분 키를 순서가 보장되지 않은 상태로 방문하므로 실행할 때마다 달라질 수 있습니다. 확정적인 출력(정렬된 보고서, 테스트 등)이 필요할 때는 키를 배열에 수집하고, table.sort를 수행한 다음, 정렬된 키를 ipairs로 반복하면서 맵을 인덱싱하세요.

challenge icon

챌린지

쉬움

18, 21, 1924로 초기화된 타입 지정 배열 temps: {number}를 생성하세요.

ipairs를 사용하여 반복하고, 두 루프 변수(day: number, temp: number)에 모두 타입을 지정하세요. 각 요소에 대해 정확히 다음과 같이 출력하세요:

Day 1: 18

(백틱을 사용한 문자열 보간 활용), 그리고 각 온도를 누적 합계에 더하세요.

루프가 끝난 후, 별도의 줄에 합계를 출력하세요.

직접 해보기

-- 여기에 코드를 작성하세요
-- 1) temps 선언: {number} = {18, 21, 19, 24}
-- 2) for day: number, temp: number in ipairs(temps) do ... end
--    `Day {day}: {temp}`를 출력하고 total에 합산
-- 3) 루프 후에 total 출력
quiz icon실력 점검

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

Luau 소개의 모든 레슨