Menu
Coddy logo textTech

반환 값이 없는 함수

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

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

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

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

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

이 주석은 선택 사항입니다. 생략하면 Luau는 function이 nothing을 반환한다고 추론합니다. : ()을 명시적으로 작성하면 의도가 문서화됩니다. 시그니처를 읽는 사람은 누구나 이 function이 결과가 아니라 side effects를 위해 호출된다는 것을 알 수 있습니다.

런타임에서는 아무것도 달라지지 않습니다(평소와 같습니다). return 값이 없는 function의 결과를 캡처하려고 하면 단순히 nil이 생성됩니다. 일반 Lua와 동일합니다.

challenge icon

챌린지

쉬움

displayWelcome이라는 이름의 함수를 만들고, userName: string을 매개변수로 받으며 명시적인 반환 유형으로 ()을 지정하세요. 다음을 출력해야 합니다: "Welcome to our application, [userName]!"

logError라는 이름의 함수를 만들고, 반환 유형이 ()errorMessage: string을 매개변수로 받도록 하세요. 다음을 출력해야 합니다: "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 소개의 모든 레슨

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