Menu
Coddy logo textTech

일급 값으로서의 함수

Coddy Lua 여정의 로직 및 흐름 제어 (Logic & Flow) 섹션에 포함된 레슨. 54개 중 12번째.

Lua에서 함수는 단순히 작업을 수행하는 코드 블록 그 이상입니다. 함수는 다른 데이터 유형과 마찬가지로 다룰 수 있는 값입니다. 즉, 숫자, 문자열 또는 테이블을 다루는 것과 같은 방식으로 함수를 사용할 수 있습니다.

함수를 변수에 저장할 수 있습니다:

local greet = function()
    print("Hello!")
end

greet()  -- 출력: Hello!

여기서 함수는 변수 greet에 할당되며, 일반 함수와 마찬가지로 호출할 수 있습니다. 이를 통해 코드를 구성하는 방식에 강력한 가능성이 열립니다.

함수는 다른 함수에 인수로 전달할 수도 있습니다. 이는 한 함수가 다른 함수에 정의된 동작을 사용하도록 하려는 경우에 특히 유용합니다:

function executeAction(action)
    action()
end

local sayHello = function()
    print("Hello from a function!")
end

executeAction(sayHello)  -- 출력: Hello from a function!

이 예제에서 executeAction은 함수를 매개변수로 받아 호출합니다. 함수 sayHello는 숫자나 문자열을 전달하는 것과 마찬가지로 전달됩니다.

함수는 심지어 다른 함수를 반환할 수도 있습니다. 이를 통해 특정 조건이나 매개변수를 기반으로 함수를 동적으로 만들 수 있습니다:

function createMultiplier(factor)
    return function(number)
        return number * factor
    end
end

local double = createMultiplier(2)
print(double(5))  -- 출력: 10
challenge icon

챌린지

쉬움

Write 함수 applyOperation을 작성하세요. 이 함수는 a, b, operation을 받아 두 숫자에 operation 함수 적용 결과를 반환합니다.

operation 매개변수는 ab를 인수로 받아 호출할 함수를 포함하는 테이블입니다.

로직:

  • "func" 키를 사용하여 operation 테이블에서 함수를 추출합니다.
  • ab를 인수로 사용하여 해당 함수를 호출합니다.
  • 결과를 반환합니다.

매개변수:

  • a (number): 첫 번째 숫자
  • b (number): 두 번째 숫자
  • operation (table): "func" 키에 저장된 함수를 포함하는 테이블

반환값: ab를 사용하여 operation 함수를 호출한 결과 (number)

직접 해보기

function applyOperation(a, b, operation)
    -- 여기에 코드를 작성하세요
end
quiz icon실력 점검

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

로직 및 흐름 제어 (Logic & Flow)의 모든 레슨

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