关于lua
- 循环中,pairs与ipairs。ipairs只循环key为整数的元素,从下标为1的开始,碰到下标不连续或者key不是整数的则退出循环;pairs则循环整个table的所有值
- 不支持++这种自增操作,要知道--是注释,所以咯,_..
- Lua中写方法都要跟上类名,.跟类方法,:跟普通方法。
xxx:(param..)
<=>xxx.(self, param..)
dofile("XXX")
载入后每次调用可执行,loadfile("XXX")
载入后不执行,require("XXX")
载入后只执行第一次载入- 哑元(dummy varialbe,_)
-- 返回第二个匹配的值
local _, x = string.find(s, p)
- Lua中只有false和nil的布尔值是false,其余(0和空table等)都是true
- Lua的数字只有double型,64bits
- userdata类型可以将任意的C数据保存到Lua的变量中
- Lua中没有C语言的三元符
(x ? a : b)
,但有一个替代方案(x and a) or b
。需要注意的是,以上方案在x为true,a为false,b为true的情况下与三元符的结果是相反的 - Lua中pcall(protected call)遇到返回两个参数,有error时返回false,没有时返回true pcall官方文档
另外,在做项目的过程中,碰到了诡异的问题。
由于第一行local AA=class("AA", require(xxx.xx))
中的AA
错写成了AB
这样会出现一个不经常出现的问题,调用方法时,会不定时的出现AA``AB
分不清的情况,这种bug又不容易复现。最后查到的时候,满脸羞愧啊。
相关GitHub仓库: https://github.com/xuanll/xLua