Menu
Coddy logo textTech

pairs()를 사용한 순회

Coddy Lua 여정의 로직 및 흐름 제어 (Logic & Flow) 섹션에 포함된 레슨 — 54개 중 1번째.

Lua에서 딕셔너리 스타일의 테이블을 다룰 때, 내부 저장된 모든 키-값 쌍에 접근해야 하는 경우가 자주 있습니다. pairs() 함수를 사용하면 키의 타입에 상관없이 테이블의 모든 항목을 순회할 수 있습니다.for 루프에서 pairs()를 사용하는 구문은 다음과 같습니다:
for key, value in pairs(myTable) do
    -- 여기서 key와 value를 사용하세요
end
루프가 반복될 때마다 pairs()는 `key`와 그에 해당하는 값을 모두 제공합니다. 이는 두 정보를 동시에 `access`하고 다룰 수 있음을 의미합니다.다음은 플레이어의 인벤토리를 사용한 실용적인 예시입니다:
local inventory = {
    sword = 1,
    potion = 5,
    gold = 150
}

for item, quantity in pairs(inventory) do
    print(item .. ": " .. quantity)
end
이 코드는 각 `item` 이름과 그 `quantity`를 출력합니다. `pairs()` `function`은 `strings`, 숫자, 심지어 다른 테이블을 포함하여 모든 `key` 유형에서 작동합니다.문자열 다루기Lua에서는 두 개의 점(..)으로 이루어진 연결(concatenation) 연산자를 사용하여 문자열을 함께 결합할 수 있습니다. 예를 들어, "Hello" .. " " .. "World"의 결과는 "Hello World"가 됩니다.텍스트를 여러 줄로 포맷팅해야 하는 경우, 줄바꿈 이스케이프 문자 "\n"을 사용할 수 있습니다. Lua가 문자열 내부에서 "\n"을 만나면, 다음 줄로 이동하라는 명령으로 처리합니다.예를 들어, print("Line 1\nLine 2")는 다음과 같이 출력됩니다:
Line 1
Line 2
challenge icon

챌린지

쉬움

inventory 테이블을 받아서 모든 items와 해당 quantity를 나열하는 formatstrings를 반환하는 function printInventory를 작성하세요.

pairs를 사용하여 inventory 테이블을 순회하고, 각 lineitem: quantity format으로 item 이름과 quantity를 표시하는 strings를 생성하세요. 각 item은 별도의 line에 있어야 합니다.

item을 별도의 줄에 놓으려면 항목 사이에 newline character "\n"를 사용하세요. 예를 들어, "apple: 5\nbanana: 3"는 두 개의 별도 줄로 표시됩니다. first item before"\n"add하지 않도록 주의하세요 — 항목 사이에만 add해야 합니다.

매개변수:

  • inventory (table): keyitem 이름(문자열)이고 값이 quantity(숫자)인 딕셔너리 스타일 테이블

반환값:itemquantity"\n"으로 구분되어 별도의 줄에 들어 있는 strings. {apple=5, banana=3}에 대한 output 예시:
apple: 5
banana: 3

직접 해보기

function printInventory(inventory)
    -- 출력을 형식화하려면 '..' 연산자를 사용하여 문자열을 연결할 수 있습니다.
    -- 새 줄을 추가하려면 특수 문자 '\n'을 사용하세요.
    -- 첫 번째 항목을 추가하는지 아니면 이후 항목을 추가하는지 추적할 방법이 필요할 수 있습니다
    -- 항목 앞에 새 줄을 추가할지 결정하기 위해.
    
    -- 여기에 코드를 작성하세요
end
quiz icon실력 점검

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

로직 및 흐름 제어 (Logic & Flow)의 모든 레슨