lua 5.1 的 module
来源:互联网 发布:淘宝店店铺介绍范文 编辑:程序博客网 时间:2024/06/04 19:08
lua 5.1 的 module
lua 从 5.1 开始终于官方提供统一的 module 实现标准了,这是个值得庆幸的事。今天读了下相关的源码和文档,把这套机制搞清楚了,还是很巧妙的。从简洁这个角度看,要比 python 强 :)
有一点容易被忽略掉(我的同事在用的时候就忽略掉了),module 指令运行完后,整个环境被压栈,所以前面全局的东西再看不见了。比如定义了一个 test 模块,使用
module("test")
后,下面不再看的见前面的全局环境。如果在这个模块里想调用 print 输出调试信息怎么办呢?一个简单的方法是
local print=print
module("test")
这样 print 是一个 local 变量,下面也是可见的。或者可以用
local _G=_G
module("test")
那么 _G.print 也是可以用的。
当然还有一种巧妙的方式,lua 5.1 提供了一个 package.seeall 可以作为 module 的option 传入
module("test",package.seeall)
这样就 OK 了。至于它们是如何工作的,还是自己读源码会理解的清楚一些。
在读源码时可以发现很多 lua 的技巧,还有一些 undocumented 的东西,比如 newproxy :) 它是一个 unsupported 且 undocumented 的东西,但是它希望实现的却是个巧妙的玩意。
转自:云风的blog http://blog.codingnow.com/2006/02/lua_51_module.html
0 0
- lua 5.1 的 module
- lua 5.1 的 module
- Lua中module的用法
- Lua-nginx-module的安装
- Lua中module的用法
- Lua Module
- lua module
- Lua Module
- lua中require和module的区别
- Lua的模块编写与module函数
- Lua的模块编写与module函数
- Lua的模块编写与module函数
- Lua的模块编写与module函数
- 【水桥月与Lua】——Lua的Module
- Lua module机制分析
- Lua C module 注意事项
- Lua module机制分析
- Lua Bit Operations Module
- Reorder List leetcode
- Android活动Acitivity启动模式之standard
- Window下配置Objective C开发环境
- Android学习笔记五:基本视图组件:Button
- 进程间通信:使用file-mapping kernel object(文件映射内核对象)
- lua 5.1 的 module
- 圆圈中最后剩下的数字
- ExtJS入门到精通视频教程下载 ExtJS视频教程
- Android学习笔记六:基本视图组件:EditText
- 字母排序问题
- SGU 518 Kidnapping BFS 广度优先搜索
- poj 3268 Silver Cow Party (spfa )
- poj2503 二分查找
- FFplay的原理(7)