如何将变量传递给函数并且在函数内更改原始变量?

我想问一下,一个函数如何设置一个通过参数传递的变量:

y = 4
test(y)

function test(x)
   x = 3
end

谢谢您的帮助。

点赞
用户5557841
用户5557841

根据我的Lua了解,单纯的Lua不可能做到这一点。你必须深入http://metalua.luaforge.net/来实现它。也许我错了,但是在我得知道之前,除非你提供它,否则我不认为有其他方法可以找到变量名。

我很好奇你为什么需要这个,因为我不知道为什么我不能推荐最好的解决方案,但你可以简单地返回值,如下所示:

function test()
    return 5
end

x = 0
print(x) -- 打印 0
x = test()
print(x) -- 打印 5

如果你可以将变量作为一个字符串传递,你还可以做一些像这样的事情:

function test(y)
    _G[y] = 5
end

x = 0
print(x) -- 打印 0
test("x")
print(x) -- 打印 5
2016-12-02 14:10:26