Table 생성 및 unpack()
Coddy Lua 여정의 로직 및 흐름 제어 (Logic & Flow) 섹션에 포함된 레슨. 54개 중 6번째.
Lua는 여러 값을 다루기 위한 상호 보완적인 두 가지 기법인 테이블 생성과 이러한 기법들은 서로 원활하게 함께 작동합니다. 값을 table에 수집하고, table을 조작한 다음, 다시 개별 values로 unpack할 수 있습니다.
unpack()을 제공합니다. 이러한 기법은 유연한 인수 처리가 필요한 함수로 작업할 때 특히 유용합니다.중괄호를 사용하는 table constructor syntax으로 여러 값을 목록 스타일의 table에 담을 수 있습니다. 이렇게 하면 모든 values가 하나의 table 구조로 수집됩니다.local args = {10, 20, 30}
print(args[1]) -- 출력: 10
print(#args) -- 출력: 3unpack() function은 반대 작업을 수행합니다. 목록 형식의 table을 받아 all 요소를 separate values로 반환합니다. 이를 통해 table 내용을 function에 개별 arguments로 전달할 수 있습니다.중요: 최신 Lua 버전(5.2 이상)에서는 이 함수가 table.unpack()으로 이동했지만, 이 환경은 Lua 5.1을 실행하므로 전역 unpack() 함수를 사용해야 합니다.local numbers = {5, 10, 15}
print(unpack(numbers)) -- 출력: 5 10 15챌린지
쉬움세 개의 숫자 a, b, c를 받아 테이블 생성과 unpack()을 사용하여 그 합을 반환하는 함수 forwardArguments를 작성하세요.
{a, b, c} 구문을 사용하여 세 인수를 포함하는 테이블을 만든 다음, 해당 값들을 언팩하여 합을 계산하는 다른 함수에 전달하세요.
참고: 이 환경과의 호환성을 보장하려면 table.unpack() 대신 전역 unpack() 함수를 사용하세요.
논리:
{a, b, c}를 사용하여 세 인수를 모두 포함하는 테이블을 만드세요- 세 개의 매개변수를 받아 그 합을 반환하는
sum이라는 별도의 함수를 만드세요 unpack()을 사용하여 테이블 값을sum함수에 전달하세요sum함수의 결과를 반환하세요
매개변수:
a(숫자): 첫 번째 숫자b(숫자): 두 번째 숫자c(숫자): 세 번째 숫자
반환값: 세 숫자의 합 (숫자)
직접 해보기
function forwardArguments(a, b, c)
-- 합을 계산하는 별도의 함수를 만드세요
-- 세 개의 인수를 모두 포함하는 테이블을 만드세요
-- 테이블을 언팩하고 값을 sum 함수에 전달하세요
-- Hint: 테이블 인수를 확장하려면 전역 'unpack' 함수를 사용하세요
end이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
로직 및 흐름 제어 (Logic & Flow)의 모든 레슨
직접 연습해 보세요: 온라인 Lua 컴파일러