在lua中返回参数

Ski*_*ing 2 lua return parameter-passing

format = function(&Return, Length, Format, ...)
    Return = string.format(Format, ...);
    Return = string.sub(Format, 0, Length);
    return 1;
end

local Test;

format(Test, 12, "Hello world %s! This is a test.", "Hello World");

print(Test);
Run Code Online (Sandbox Code Playgroud)

我希望这能打印出来,"Hello world!" 没有它被函数返回但由参数返回.

mot*_*eus 6

你可以做点什么

local function Pointer()
  return setmetatable({},{
    __tostring = function(self) return self.value end
  })
end

format = function(Return, Length, Format, ...)
  Return.value = string.sub(Format, 0, Length)
  return 1
end

local Test = Pointer()

format(Test, 12, "Hello world %s! This is a test.", "Hello World")

print(Test)
Run Code Online (Sandbox Code Playgroud)