Menu
Coddy logo textTech

익명 함수 타입 지정

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

Lua에서 함수는 값입니다 — 지금까지 변수에 저장하거나 전달해 보았습니다: local f = function(x) return x * 2 end. 이러한 익명 함수(함수 표현식)는 이름이 있는 함수와 정확히 동일한 방식으로 타입 어노테이션을 작성합니다:

local double = function(x: number): number
    return x * 2
end

local shout = function(text: string): string
    return string.upper(text) .. "!"
end

괄호 안에 매개변수 name: type을 작성하고, 닫는 괄호 뒤에 반환 타입을 작성합니다 — 이름이 있는 함수와의 유일한 차이점은 function 키워드 뒤에 이름이 없고 전체 표현식이 변수에 할당된다는 것입니다.

JavaScript나 TypeScript를 접해보셨다면, Luau에는 화살표 함수가 없다는 점에 유의하세요 — => 문법이 존재하지 않습니다. 모든 함수 표현식은 길이에 상관없이 function ... end로 작성됩니다.

할당되고 나면 다른 함수와 마찬가지로 변수를 통해 호출합니다: double(21)42를 반환하며, 검사기는 작성한 어노테이션에 맞게 모든 호출을 검증합니다.

challenge icon

챌린지

쉬움

named 함수를 동일한 타입 어노테이션을 유지하면서 local 변수에 저장되는 익명 함수(anonymous function)로 다시 작성하세요:

function subtract(a: number, b: number): number
    return a - b
end

즉, 동일한 매개변수 및 반환 타입을 사용하여 local subtract = function(...) ... end 형태로 작성합니다.

그런 다음 타핑된 익명 함수 두 개를 더 생성하세요:

  • createMessagetext: string을 받고, "Message: [text]" 문자열을 반환 (반환 타입 string)
  • isPositivenum: number를 받고, 숫자가 0보다 크면 true, 그렇지 않으면 false를 반환 (반환 타입 boolean)

각각을 한 줄씩 호출하여 print 하세요:

  1. subtract(10, 3)
  2. createMessage("Hello World")
  3. isPositive(-5)
  4. isPositive(8)

직접 해보기

-- 여기에 코드를 작성하세요
-- local subtract = function(a: number, b: number): number ... end
-- local createMessage = function(text: string): string ... end
-- local isPositive = function(num: number): boolean ... end
-- 그런 다음 네 결과를 출력하세요
quiz icon실력 점검

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

Luau 소개의 모든 레슨