Menu
CoddyTech

Table 생성 및 unpack()

Coddy Lua 여정의 논리와 흐름 제어 섹션에 포함된 레슨. 54개 중 6번째.

Lua는 여러 값을 다루기 위한 상호 보완적인 두 가지 기법인 테이블 생성과 unpack()을 제공합니다. 이러한 기법은 인수를 유연하게 처리해야 하는 함수와 함께 사용할 때 특히 유용합니다.중괄호를 사용하는 테이블 생성자 문법으로 여러 값을 리스트 형태의 테이블에 담을 수 있습니다. 이렇게 하면 모든 값이 하나의 테이블 구조에 모입니다.
local args = {10, 20, 30}
print(args[1])  -- 출력: 10
print(#args)    -- 출력: 3
unpack() 함수는 반대 역할을 합니다. 리스트 형식의 테이블을 받아 모든 요소를 각각 별도의 값으로 반환합니다. 이를 통해 테이블의 내용을 함수에 개별 인수로 전달할 수 있습니다.중요: 최신 버전의 Lua(5.2+)에서는 이 함수를 table.unpack()으로 옮겼지만, 이 환경은 Lua 5.1을 실행하므로 전역 unpack() 함수를 사용해야 합니다.
local numbers = {5, 10, 15}
print(unpack(numbers))  -- 출력: 5    10    15
이러한 기법들은 서로 원활하게 함께 작동합니다. 값을 테이블에 모으고, 테이블을 조작한 다음, 다시 개별 값으로 풀어낼 수 있습니다.
challenge icon

챌린지

쉬움

세 개의 숫자 a, b, c를 받는 forwardArguments 함수를 작성하고, 테이블을 만들고 unpack()을 사용하여 세 숫자의 합을 반환하세요.

{a, b, c} 구문을 사용해 세 인수를 포함하는 테이블을 만든 다음, 값을 풀어 다른 함수에 전달하여 합을 계산하세요.

참고: 이 환경과의 호환성을 보장하려면 table.unpack()이 아닌 전역 unpack() 함수를 사용하세요.

논리:

  • {a, b, c}를 사용해 세 인수를 모두 포함하는 테이블을 만드세요
  • 세 매개변수를 받고 그 합을 반환하는 sum이라는 별도의 함수를 만드세요
  • unpack()을 사용해 테이블의 값을 sum 함수에 전달하세요
  • sum 함수의 결과를 반환하세요

매개변수:

  • a (숫자): 첫 번째 숫자
  • b (숫자): 두 번째 숫자
  • c (숫자): 세 번째 숫자

반환값: 세 숫자의 합 (숫자)

직접 해보기

function forwardArguments(a, b, c)
    -- 합계를 계산하는 별도의 함수를 만드세요

    -- 세 인수를 모두 담은 테이블을 만드세요

    -- 테이블을 풀어서 값들을 합계 함수에 전달하세요
    -- 힌트: 전역 'unpack' 함수를 사용해 테이블의 인수들을 펼치세요

end
quiz icon실력 점검

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

논리와 흐름 제어의 모든 레슨

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