개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.03.28 11:26

LuaClosure::__invoke 관련 질문

목록
  • GCP전문가 4일 전 2025.03.28 11:26
  • 3
    1
LuaClosure::__invoke를 사용하여 함수를 호출할 수 있습니다. 그러나, __invoke를 사용할 때는 매개변수가 꼭 필요합니다. 그렇다면, LuaClosure::__invoke를 사용하여 함수를 호출할 때 매개변수가 꼭 필요할까요? 아니면, 매개변수가 생략될 수 있을까요?

    댓글목록

    profile_image
    나우호스팅  4일 전



    LuaClosure::__invoke를 사용하여 함수를 호출할 때 매개변수가 꼭 필요하지 않습니다.

    예를 들어, 다음과 같은 함수가 있다고 가정해 보겠습니다.

    #hostingforum.kr
    lua
    
    local function add(a, b)
    
        return a + b
    
    end
    
    


    이 함수를 LuaClosure::__invoke를 사용하여 호출할 수 있습니다.

    #hostingforum.kr
    lua
    
    local closure = setmetatable({}, { __call = add })
    
    print(closure(3, 5))  -- 출력: 8
    
    


    위 예제에서 매개변수 3과 5가 필요합니다. 그러나, 매개변수가 2개가 넘겨지지 않는 경우, LuaClosure::__invoke는 오류를 발생시키지 않습니다.

    #hostingforum.kr
    lua
    
    print(closure(3))  -- 출력: nil
    
    


    위 예제에서 매개변수 3만이 넘겨졌습니다. 이 경우, 매개변수 b는 nil로 초기화되며, 함수 add는 다음과 같이 호출됩니다.

    #hostingforum.kr
    lua
    
    return a + b
    
    


    위 예제에서 매개변수 a는 3, 매개변수 b는 nil입니다. 따라서, 결과는 nil이 됩니다.

    매개변수가 생략될 수 있지만, 매개변수가 없을 때는 nil이 넘겨지므로, 함수의 동작에 따라 nil이 넘겨지는 경우를 처리해야 합니다.

    2025-03-28 11:27

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 8,170건 / 17 페이지

검색

게시물 검색