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

标签 lua

我来问你一个函数如何设置一个参数传递的变量:

y = 4
test(y)

function test(x)
   x = 3
end

提前谢谢你。

最佳答案

根据我目前对 Lua 的了解,这对于纯 Lua 是不可能的。你必须深入研究 http://metalua.luaforge.net/为达到这个。也许我错了,但我看不到不获取变量名的方法,据我所知,除非您提供变量名,否则纯 Lua 是不可能的。

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

function test()
    return 5
end

x = 0
print(x) -- prints 0
x = test()
print(x) -- prints 5

如果您也可以将变量作为字符串传递,您也可以这样做:

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

x = 0
print(x) -- prints 0
test("x")
print(x) -- prints 5

关于lua - 如何将变量传递给函数并在函数内更改原始变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40933174/

相关文章:

sdk - 如何在 Lua 中显示数组元素?

c++ - 嵌入式 Lua C++ : how can i load multiple lua modules from C++ side

C++ 从 Lua 脚本调用函数

lua - Lua 中的 "Not start with"模式

java - 在java中创建lua接口(interface)

Lua添加package.path到require不起作用

Lua C API : Delete metatable created with luaL_newmetatable?

lua - 将值存储在 lua 的 userdata 对象中

c++ - 返回字符串 vector 的最简单的 lua 函数

filesystems - Lua: %UserProfile% 访问权限