![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
lua
文章平均质量分 54
白雲綠水
这个作者很懒,什么都没留下…
展开
-
Lua-5.3.4代码分析(一) LUA数据类型
LUA的基础数据类型是TValue, 源码如下:#define TValuefields Value value_; int tt_typedef struct lua_TValue { TValuefields;} TValue;TValue包含两个成员变量value_和tt_, value_是变量值,tt_是变量类型。先看value_, 源码如下:/*** Union of all...原创 2018-02-27 23:00:34 · 536 阅读 · 0 评论 -
编译LUA源码
工具 : VisualStudio 2013 / Lua源代码 1.静态库打开VisualStudio,新建一个win32空项目,名字为Lua53,项目类型为静态库。取消勾选预编译头。在源文件中添加src文件夹下的所有文件,然后移除lua.c 和 luac.c这两个文件,右键项目->生成。然后跟踪到项目的文件夹。这个时候在Debug目录下应该就有我们编译好的Lua53.lib库了。2.解释器...转载 2018-03-15 22:00:29 · 766 阅读 · 0 评论 -
Lua-5.3.4代码分析(二)TString字符串
先看LUA中关于字符串TString的源码:/*** Header for string value; string bytes follow the end of this structure** (aligned according to 'UTString'; see next).*/typedef struct TString { CommonHeader;//可GC对象的头...原创 2018-03-11 17:58:58 · 1563 阅读 · 0 评论 -
lua: for和迭代器解析
翻译 2018-05-08 21:09:19 · 143 阅读 · 0 评论 -
配置Sublime Text的lua开发环境
1.编译lua 参考https://blog.csdn.net/u014269285/article/details/795748132.设置lua环境变量3.在sublime Text创建新的编译系统4.添加下面的配置,命名为selflua.sublime-build{"cmd": ["lua", "$file"], "file_regex": "^(?:lua:)?[\t ](...*?...原创 2018-05-23 15:22:23 · 609 阅读 · 0 评论 -
lua学习之监控表
__index和__newindex都是在只有表中访问的域不存在的时候才起作用。捕获对一个表的所有访问情况的唯一方法是保持表为空。所以想监控一个表的所有访问情况,我们就应该创建一个代理,这个代理是空表。local index = {}local mt = { __index = function(t, k) print("*access to element "..tostring(k)...原创 2018-05-23 15:33:29 · 568 阅读 · 0 评论 -
lua学习之全局变量
全局变量保存在_G表中。全局变量不需要声明,对小的程序很方便。当程序很大时,可能会导致很难发现的bug.方法1:function declare(name, initval ) rawset(_G, name, initval or false) --rawset是会绕过metamethod的endsetmetatable(_G, { __newindex = function (_...原创 2018-05-23 15:44:29 · 3441 阅读 · 0 评论 -
lua学习之类
有两个对象 a 和 b,我们想让 b 作为 a 的 prototype 只需要:setmetatable(a, {__index = b})这样,对象 a 调用任何不存在的成员都会到对象 b 中查找。local Account = {balance=1}function Account:withdraw(v) self.balance = self.balance - vendfun...原创 2018-05-24 16:56:18 · 119 阅读 · 0 评论 -
lua学习之继承
实现的关键在于:将函数用作__index。记住,当一个表的 metatable 存在一个__index函数时,如果 Lua 调用一个原始表中不存在的函数,Lua 将调用这个__index 指定的函数。这样可以用__index 实现在多个父类中查找子类不存在的域。代码:local function search(k, plist) for i = 1, table.getn(plist) do ...原创 2018-05-24 17:00:27 · 116 阅读 · 0 评论