Menu
CoddyTech

익명 함수의 타입 지정

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

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

챌린지

쉬움

형식이 지정된 함수를 지역 변수에 저장하세요.

  1. subtract를 본문은 그대로 유지하면서 local subtract = function(a: number, b: number): number로 다시 작성하세요.
  2. num > 0을 반환하는 local isPositive = function(num: number): boolean을 추가하세요.
  3. subtract(10, 3)과 isPositive(-5)를 출력하세요.

코드 실행을 누르세요. 출력에 7과 false가 표시됩니다.

직접 해보기

-- 이를 지역 변수에 저장된 익명 함수로 다시 작성하세요
function subtract(a: number, b: number): number
    return a - b
end

Luau 소개의 모든 레슨

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