Menu
Coddy logo textTech

반환 값이 없는 함수

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

많은 함수들이 값을 계산하지 않고, 메시지 출력, 테이블 업데이트, 상태 저장과 같이 무언가를 수행합니다. Luau에서는 빈 반환 타입 ()를 사용하여 함수가 nothing을 반환한다고 주석을 달 수 있습니다:

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

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

TypeScript를 경험해 보셨다면, ()void의 역할을 한다는 것을 알 수 있습니다. 하지만 Luau 표기법은 말 그대로 "0개의 반환 값"을 의미하는 빈 괄호 쌍입니다.

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

런타임 시에는 (늘 그렇듯) 아무것도 바뀌지 않습니다. return 값이 없는 함수는 결과를 캡처하려고 할 때 일반 Lua와 마찬가지로 단지 nil을 생성합니다.

challenge icon

챌린지

쉬움

userName: string을 받고 명시적인 반환 타입 ()를 가지는 displayWelcome이라는 이름의 함수를 만드세요. 이 함수는 "Welcome to our application, [userName]!"를 출력해야 합니다.

errorMessage: string을 받고 반환 타입이 ()logError라는 이름의 함수를 만드세요. 이 함수는 "ERROR: [errorMessage]"를 출력해야 합니다.

매개변수를 받지 않고 반환 타입이 ()processData라는 이름의 함수를 만드세요. 이 함수는 "Processing data..."를 출력한 후 다음 줄에 "Data processing complete."를 출력해야 합니다.

다음 순서대로 호출하세요:

  1. displayWelcome("Alice")
  2. processData()
  3. logError("Invalid input detected")
  4. displayWelcome("Bob")

직접 해보기

-- 여기에 코드를 작성하세요
-- displayWelcome(userName: string): ()
-- logError(errorMessage: string): ()
-- processData(): ()
-- 그런 다음 호출: displayWelcome("Alice"), processData(),
-- logError("Invalid input detected"), displayWelcome("Bob")
quiz icon실력 점검

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

Luau 소개의 모든 레슨