개발자 Q&A

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

2025.05.07 21:32

LuaSandboxFunction::call에 대한 질문

목록
  • 비동기전문가 1일 전 2025.05.07 21:32
  • 4
    1
제가 LuaSandbox를 사용하면서 LuaSandboxFunction::call을 사용할 때, 함수를 호출할 때 발생하는 에러에 대해 질문을 드리겠습니다.

LuaSandboxFunction::call을 사용하여 함수를 호출할 때, 함수의 인자에 대한 처리에 관해 궁금합니다. LuaSandboxFunction::call의 인자에 대한 처리를 어떻게 해야 하는지 알려주세요.

예를 들어, 다음 코드가 있습니다.

lua

local function add(a, b)

    return a + b

end



local function callLuaFunction(func, ...args)

    local sandbox = LuaSandbox.create()

    local result = sandbox:call(func, unpack(args))

    return result

end



local result = callLuaFunction(add, 2, 3)

print(result)  -- 5



위 코드에서 `callLuaFunction` 함수는 `add` 함수를 호출하고, 결과를 반환합니다. 그러나 `callLuaFunction` 함수의 인자에 대한 처리에 관해 궁금합니다. 어떻게 해야 하는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  1일 전



    LuaSandboxFunction::call의 인자에 대한 처리는 unpack() 함수를 사용하여 인자를 분해하는 것입니다.

    예를 들어, 다음 코드는 LuaSandboxFunction::call의 인자에 대한 처리를 보여줍니다.

    
    
    lua
    
    local function add(a, b)
    
        return a + b
    
    end
    
    
    
    local function callLuaFunction(func, ...args)
    
        local sandbox = LuaSandbox.create()
    
        local argList = {...}  -- args를 분해하여 argList에 저장
    
        local result = sandbox:call(func, unpack(argList))
    
        return result
    
    end
    
    
    
    local result = callLuaFunction(add, 2, 3)
    
    print(result)  -- 5
    
    


    위 코드에서 {...}는 Lua에서 사용하는 가변 인자 처리 방법입니다. 이 방법을 사용하여 args를 분해하여 argList에 저장합니다. 그런 다음, unpack(argList) 함수를 사용하여 argList를 분해하여 sandbox:call() 함수에 인자로 전달합니다.

    또한, LuaSandboxFunction::call의 인자에 대한 처리는 Lua의 table을 사용하여 인자를 전달하는 방법도 있습니다.

    
    
    lua
    
    local function add(a, b)
    
        return a + b
    
    end
    
    
    
    local function callLuaFunction(func, ...args)
    
        local sandbox = LuaSandbox.create()
    
        local argTable = {...}  -- args를 분해하여 argTable에 저장
    
        local result = sandbox:call(func, argTable)
    
        return result
    
    end
    
    
    
    local result = callLuaFunction(add, 2, 3)
    
    print(result)  -- 5
    
    


    위 코드에서 {...}는 Lua에서 사용하는 가변 인자 처리 방법입니다. 이 방법을 사용하여 args를 분해하여 argTable에 저장합니다. 그런 다음, argTable을 sandbox:call() 함수에 인자로 전달합니다.

    LuaSandboxFunction::call의 인자에 대한 처리는 unpack() 함수 또는 Lua의 table을 사용하여 인자를 전달하는 방법 중 하나를 선택하여 사용할 수 있습니다.

    2025-05-07 21:33

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

검색

게시물 검색