`

lua module 对全局变量的影响

 
阅读更多

这个星期一直在研究lua,前段时间刚解决了一个问题,就是module对全局变量的影响,因为对lua还没有系统深入的了解,这个问题折腾了我大半天的时间,大致情况就是 我在主文件中其中一个模块文件声明了一个AAA全局变量,然后模块文件中修改这个AAA变量,并且还增加了一个变量BBB,然后在执行这个模块文件后,再次显示AAA和BBB的值,发现BBB的值时nil,废话不多说来,上代码吧

main.lua

 

require "a"
print("*********************".."*****************") -- 练习一下..的用法
print(AAA[1])
print(AAA[2])
print(BBB[1])
print(BBB[2])
print("**************************************")
b= require "b"
b.run()
print(AAA[1])
print(AAA[2])
print(BBB[1])
print(BBB[2])
print("**************************************")

a.lua文件

AAA = {}
AAA[1] = 10
BBB = {}

 

module(..., package.seeall)
function run()
    print("**************************************")
    AAA[2] = 20
    print(AAA[1])
    print(AAA[2])
    BBB= AAA
    print(BBB[1])
    print(BBB[2])
    print("**************************************")
    return 0
end

 运行 lua main.lua 后,结果如下

**************************************
10
nil
nil
nil
**************************************
**************************************
10
20
10
20
**************************************
10
20
nil
nil
**************************************

 大家看到结果了吧,具体原理还不是很清楚,后续补充吧

 

分享到:
评论

相关推荐

    ngx_lua_module-windows-1.1.2.0

    nginx lua module for windows 详细请访问 http://blog.csdn.net/ngwsx/

    lua 崩溃获取各个堆栈中局部变量 上层变量 全局变量,方便定位问题

    lua 崩溃获取各个堆栈中局部变量 上层变量 全局变量,方便定位问题,可以用于cocos2d引擎,测试demo,直接lua trace.lua就可以运行看效果

    Lua教程(十): 全局变量和非全局的环境

    主要介绍了Lua教程(十): 全局变量和非全局的环境,本文讲解了老的全局变量环境和Lua5中新的非全局环境相关知识,需要的朋友可以参考下

    lua-nginx-module完全指南.docx

    通过概要,指令,api接口三方面阐述lua-nginx模块的使用。 使用Lua编写Nginx脚本的基本构建块是指令。...这些软件包在ngx_lua是默认全局生效,并且始终在ngx_lua指令中可用。 文中介绍指令67个,api接口241个。

    lua-nginx-module-0.10.13

    lua-nginx-module-0.10.13

    roblox-global-variable-enumerator:列出所有RBX.Lua全局变量

    列出所有RBX.Lua全局变量 解释 很久以前,您可以执行以下操作以获取ROBLOX Lua中所有全局变量的列表: for index, value in pairs ( getfenv ( 0 )) do print (index) end 但是,开发人员开始修改全局环境以获得...

    lua支持中文变量名,

    Lua 是一个小巧的脚本语言。作者是巴西人。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。 版本:5.1.4 内有 1、修改源文件的方法 2、Delphi的一个封装类 3、编译方法 4、编译好...

    openresty(nginx-lua-module-zh-wiki)中文文档.pdf

    OpenResty 是一个强大的 Web 应用服务器,Web 开发人员可以使用 Lua 脚本语言调动 Nginx 支持的各种 C 以及 Lua 模块,更主要的是在性能方面,OpenResty可以 快速构造出足以胜任 10K 以上并发连接响应的超高性能 Web ...

    Lua5.1,VS08工程,支持中文变量

    Lua5.1,VS08工程,支持中文变量.分不多,自己感受.

    lua-upstream-nginx-module, Nginx C 模块将Lua向ngx_lua公开,用于 Nginx upstreams.zip

    lua-upstream-nginx-module, Nginx C 模块将Lua向ngx_lua公开,用于 Nginx upstreams 电子邮件名称ngx_http_lua_upstream - Nginx MODULE,用于向 Nginx upstreams公开Lua到 ngx_lua目录NAME状态概要说明函数get_...

    Lua 变量

    Lua 中的变量全是全局变量,那怕是语句块或是函数里,除非用 local 显式声明为局部变量。 局部变量的作用域为从声明位置开始到所在语句块结束。 变量的默认值均为 nil。 实例 -- test.lua 文件脚本 a = 5 -- ...

    支持中文变量的lua

    大名鼎鼎的lua,魔兽世界等各种网游广泛使用的脚本语言,这个压缩包是我修改好的支持中文变量名的版本,因为vs2008里面的代码,偶尔会用到中文的变量名,所以有了这个版本,兼容性会更好,省得大批量的修改以往的...

    lua-nginx-module-0.10.9rc7

    nginx集成lua脚本模块,配合nginx和ngx_devel_kit一起使用,注意lua_nginx_module的版本号,否则会出现时间类型不兼容

    Lua–变量

    Lua 中的变量全是全局变量,那怕是语句块或是函数里,除非用 local 显式声明为局部变量。 局部变量的作用域为从声明位置开始到所在语句块结束。 变量的默认值均为 nil。 a = 5 -- 全局变量 local b = 5 -- 局部变量 ...

    lua-nginx-module-master.zip

    lua-nginx-module-master,nginx编译lua模块必需文件lua-nginx-module

    nginx-tcp-lua-module.zip

    # yum -y install -y pcre* openssl* # for pcre, such as ngx.gmatch etc, --with-pcre=PATH/pcre-8.36 --with-pcre-jit # if use openssl, then need --with-... --add-module=src/tcp/ngx_tcp_lua_module

    lua-nginx-module.zip

    lua-nginx-module (ngx_lua) 可在 Nginx 中嵌入 Lua 语言。让 Nginx 可以支持 Lua 强大的语法。

    lua-newmodule:使 Lua 模块和 init.lua 变得简单

    Lua 5.0 引入了 module() 函数。 这种定义模块的方式受到了批评。 请参阅 。 提出了一种更好、更简单的定义模块的方法(没有 module() 函数!)。 请参阅: : 。 在 Lua 5.2 中删除了 module() 函数。 见 更多...

    新版本 Lua 5.4.2 for Windows 已编译好的文件 解压+配置环境变量即可用

    新版本 Lua 5.4.2 for Windows 已编译好的文件 解压+配置环境变量即可用 网上已编译的Lua文件过老 都是Lua 5.1左右的老版本 这个是Lua 5.4.2版本 Win10环境下亲测可用 安装方法 1. 解压缩并复制到安装的位置 比如D:\...

Global site tag (gtag.js) - Google Analytics