Menu
CoddyTech

아무것도 반환하지 않는 함수

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

많은 함수는 값을 계산하지 않습니다. 함수는 메시지를 출력하고, 테이블을 업데이트하고, 상태를 저장하는 등 어떤 일을 합니다. Luau에서는 빈 반환 타입 ()으로 함수가 아무것도 반환하지 않는다고 주석을 달 수 있습니다:

local function logMessage(message: string): ()
    print(message)
end

local counter = 0
local function incrementCounter(): ()
    counter += 1
end

TypeScript를 사용해 본 적이 있다면 ()가 void의 역할을 한다는 것을 알 것입니다. 하지만 Luau에서는 빈 괄호 한 쌍으로 표기하며, 말 그대로 "반환값이 0개"라는 뜻입니다.

주석은 선택 사항입니다. 생략하면 Luau는 함수가 아무것도 반환하지 않는다고 추론합니다. : ()를 명시적으로 작성하면 의도를 분명히 알릴 수 있습니다. 시그니처를 읽는 사람은 누구나 이 함수가 결과가 아니라 부수 효과를 위해 호출된다는 것을 알 수 있습니다.

런타임에는 아무것도 달라지지 않습니다(늘 그렇듯이). 값을 return하지 않는 함수의 결과를 저장하려고 하면 단순한 Lua와 마찬가지로 nil이 반환됩니다.

challenge icon

챌린지

쉬움

출력하고 아무것도 반환하지 않는 함수 두 개를 작성하세요.

  1. local function displayWelcome(userName: string): ()을 작성해 `Welcome, {userName}!`을 출력하세요.
  2. local function logError(errorMessage: string): ()를 작성해 `ERROR: {errorMessage}`를 출력하세요.
  3. displayWelcome("Alice")를 호출한 다음 logError("Invalid input")을 호출하세요.

Run Code를 누르세요. 출력에 Welcome, Alice!와 ERROR: Invalid input이 표시됩니다.

직접 해보기

-- 1) displayWelcome(userName: string): ()
-- 2) logError(errorMessage: string): ()
-- 3) displayWelcome("Alice")를 호출한 다음 logError("Invalid input")를 호출합니다

Luau 소개의 모든 레슨

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