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!" 没有它被函数返回但由参数返回.
你可以做点什么
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)