function bar(w)
w = 1
end
a = 2
bar(a)
print(a) -- => 2
下一个是有效的,但它不是一个论点。
function test()
a = 1
end
a = 2
test(a)
print(a) -- => 1
如何更改函数体中的变量是变量是参数吗?
答案 0 :(得分:3)
正如数字Veer在评论中指出的,lua值通常按值传递。所以你不能这样做。
然而,表格是通过引用传递的。 (有关此内容的更多讨论,请参阅lua手册中的2.2 Values and Types部分。)
因此,如果您将表传递给该函数,则可以修改表中的值。
function bar(tab)
tab.w = 1
end
local t = {w = 2}
bar(t)
print(t.w) -- => 1