Menu
Coddy logo textTech

익명 함수 타입 지정

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

Lua에서 함수는 값입니다. 함수를 변수에 저장하고 여기저기로 전달해 왔습니다: local f = function(x) return x * 2 end. 이러한 익명 함수(function 표현식)는 named function과 정확히 같은 방식으로 타입 주석을 사용합니다:

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

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

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

JavaScript나 TypeScript를 본 적이 있다면, Luau에는 화살표 함수가 없다는 점에 유의하세요. => 구문은 없습니다. 모든 function 표현식은 길든 짧든 function ... end로 작성합니다.

할당한 후에는 다른 함수와 마찬가지로 변수를 통해 호출합니다. double(21)42를 반환하며, checker는 각 호출을 여러분이 작성한 주석과 대조해 검증합니다.

challenge icon

챌린지

쉬움

이 이름이 지정된 함수를 모든 타입 주석을 유지하면서 지역 변수에 저장된 익명 함수로 다시 작성하세요:

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

즉, 동일한 매개변수 및 반환 타입을 사용하여 local subtract = function(...) ... end을 만드세요.

그런 다음 타입이 지정된 익명 함수 두 개를 더 만드세요:

  • createMessage: text: string을 받고, 문자열 "Message: [text]"을 반환합니다(반환 타입 string).
  • isPositive: num: number를 받고, 숫자가 0보다 크면 true를 반환하며, 그렇지 않으면 false를 반환합니다(반환 타입 boolean).

다음 항목을 각각 한 줄에 하나씩 호출하고 출력하세요:

  1. subtract(10, 3)
  2. createMessage("Hello World")
  3. isPositive(-5)
  4. isPositive(8)
REQUIRED OUTPUT FORMAT: <translation> [Your translated content here] </translation>

직접 해보기

-- 여기에 코드를 작성하세요
-- 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 소개의 모든 레슨

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