gpt4 book ai didi

lua - 如何从其他脚本访问本地表变量

转载 作者:行者123 更新时间:2023-12-02 07:18:55 25 4
gpt4 key购买 nike

我的代码:

lua_State *L = luaL_newstate();
luaL_openlibs(L);
lua_settop(L, 0);
//Script A
luaL_dostring(L, "A = {} A.num = 3");
//Script B
luaL_dostring(L, "B = {} function B.update() return A.num * 2 end");
//Script C
luaL_dostring(L, "print(B.update())");
lua_close(L);

结果:6

但是,如果我将表 AB 设置为本地表,如下所示:

lua_State *L = luaL_newstate();
luaL_openlibs(L);
lua_settop(L, 0);
//Script A
luaL_dostring(L, "local A = {} A.num = 3");
//Script B
luaL_dostring(L, "local B = {} function B.update() return A.num * 2 end");
//Script C
luaL_dostring(L, "print(B.update())");
lua_close(L);

它不输出任何东西。

如何让第二个代码工作,两者之间更推荐的设计是什么?

附加问题:将所有函数和变量放入每个 .lua 文件的唯一命名表中是否是 Lua 中避免每个文件之间名称冲突的常用技术?

最佳答案

局部变量对定义它们的脚本是私有(private)的。这就是重点。

如果你想从脚本中导出一些东西,返回它。定义库的脚本通常返回一个表。这比污染全局环境要礼貌得多。

关于lua - 如何从其他脚本访问本地表变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51378952/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com