随笔分类 -  lua

摘要:-- 定义一个双向链表节点 local Node = {} Node.new = function(key, value) local node = {} node.key = key node.value = value node.prev = nil node.next = nil return 阅读全文
posted @ 2024-03-25 10:06 天下太平 阅读(41) 评论(0) 推荐(0) 编辑
摘要:lua里面没有类似C++的三元运算符 a?b:c。 第一种实现 if-else -- 三元运算符 function iif(condition, a, b) if condition then return a else return b end end 第二种实现 一般化的 a and b or 阅读全文
posted @ 2022-09-23 15:14 天下太平 阅读(265) 评论(0) 推荐(0) 编辑
摘要:项目中会经常要判断表是否是空表。 直接用表与{}比较,是错误的。 local a = {} if a == {} then print("a 是空表") else print("a 不是空表") end # 输出:a 不是空表 table是引用变量,这里比较的是a的地址和匿名table的地址,地址不 阅读全文
posted @ 2022-08-29 20:03 天下太平 阅读(519) 评论(0) 推荐(0) 编辑
摘要:function reloadModule(module_name) local old_module = package.loaded[module_name] or {} package.loaded[module_name] = nil require(module_name) local n 阅读全文
posted @ 2022-05-19 14:04 天下太平 阅读(89) 评论(0) 推荐(0) 编辑
摘要:执行lua时报错:too many C levels (limit is 200) in function at line 5 near 出现这个错误,表示lua文件出现了循环调用。即循环require。 A require B B require A 解决方法: 找出循环引用,然后把B合入A中,消 阅读全文
posted @ 2022-04-08 10:21 天下太平 阅读(1277) 评论(0) 推荐(0) 编辑
摘要:复盘报告:lua的pbc绑定,表中的对象修改后没有生效 问题 项目中lua使用的pbc做数据绑定,遇到一个问题,发现修改表中的对象后,值没有生效,仍然为原值。 经过一番查询发现也有人遇到了这个问题:https://blog.codingnow.com/2012/04/pbc_improved.htm 阅读全文
posted @ 2022-04-02 16:46 天下太平 阅读(103) 评论(0) 推荐(0) 编辑
摘要:检查lua内存泄露 阅读全文
posted @ 2022-03-31 17:24 天下太平 阅读(729) 评论(0) 推荐(0) 编辑