Table 생성 및 unpack()
Coddy Lua 여정의 Logic & Flow 섹션에 포함된 레슨 — 54개 중 6번째.
Lua는 여러 값을 처리하기 위한 상호 보완적인 한 쌍의 기술을 제공합니다: 테이블 생성 및 table.unpack(). 이것들은 유연한 인자 처리가 필요한 함수를 작업할 때 특히 유용합니다.
중괄호를 사용한 테이블 생성자 구문을 사용하여 여러 값을 리스트 스타일의 테이블로 캡처할 수 있습니다. 이것은 모든 값을 단일 테이블 구조로 수집합니다.
local args = {10, 20, 30}
print(args[1]) -- 출력: 10
print(#args) -- 출력: 3table.unpack() 함수는 그 반대의 역할을 합니다. 이 함수는 리스트 스타일의 테이블을 받아 모든 요소를 별개의 값으로 반환합니다. 이를 통해 테이블의 내용을 함수의 개별 인자로 전달할 수 있습니다.
local numbers = {5, 10, 15}
print(table.unpack(numbers)) -- 출력: 5 10 15이 기술들은 서로 원활하게 작동합니다. 값을 테이블로 수집하고, 테이블을 조작한 다음, 다시 개별 값으로 풀 수 있습니다.
챌린지
쉬움세 개의 숫자 a, b, c를 인자로 받아 테이블 생성과 table.unpack()을 사용하여 그 합계를 반환하는 forwardArguments 함수를 작성하세요.
{a, b, c} 구문을 사용하여 세 개의 인자를 포함하는 테이블을 생성한 다음, 이를 언팩(unpack)하여 합계를 계산하는 다른 함수에 전달하세요.
로직:
{a, b, c}를 사용하여 세 개의 인자를 모두 포함하는 테이블을 생성합니다.- 세 개의 매개변수를 받아 그 합을 반환하는
sum이라는 별도의 함수를 생성합니다. table.unpack()을 사용하여 테이블 값을sum함수에 전달합니다.sum함수의 결과를 반환합니다.
매개변수:
a(number): 첫 번째 숫자b(number): 두 번째 숫자c(number): 세 번째 숫자
반환값: 세 숫자의 합계 (number)
치트 시트
테이블 생성자 구문 {a, b, c, ...}은 리스트 스타일의 테이블을 생성합니다. 요소의 개수를 얻으려면 #을 사용하세요.
local args = {10, 20, 30}
print(args[1]) -- 출력: 10
print(#args) -- 출력: 3table.unpack()은 리스트 스타일의 테이블을 받아 모든 요소를 개별 값으로 반환하며, 테이블 내용을 함수의 개별 인자로 전달할 수 있게 해줍니다.
local numbers = {5, 10, 15}
print(table.unpack(numbers)) -- 출력: 5 10 15직접 해보기
function forwardArguments(a, b, c)
-- 합계를 계산하는 별도의 함수를 생성합니다
-- 세 개의 인수를 모두 포함하는 테이블을 생성합니다
-- 테이블의 압축을 풀고 sum 함수에 값을 전달합니다
end
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.