摘要: Lua将环境本身存储在一个全局变量_G中,(_G._G等于_G)。为了对全局命名空间更好的管理,最好是显示的声明每一个变量,可以通过使用metamethod来改变_G的行为来进行规范:-- 声明新的变量,使用rawset绕过metamethod的限制-- 保证声明的变量不为nil,如果声明一个n... 阅读全文
posted @ 2014-07-11 17:55 斯芬克斯 阅读(1493) 评论(0) 推荐(0) 编辑
摘要: __index和__newindex实际上相当于是在读写表的时候分别加了一道过滤的逻辑,让读写表的操作可以被监控或说回调,利用这个特性可以实现一些带有特殊功能的表。 带有默认值的表:setdefault = function(t, v) setmetatable(t, {__index ... 阅读全文
posted @ 2014-07-11 16:00 斯芬克斯 阅读(1473) 评论(0) 推荐(0) 编辑