关于lua

  1. 循环中,pairs与ipairs。ipairs只循环key为整数的元素,从下标为1的开始,碰到下标不连续或者key不是整数的则退出循环;pairs则循环整个table的所有值
  2. 不支持++这种自增操作,要知道--是注释,所以咯,_..
  3. Lua中写方法都要跟上类名,.跟类方法,:跟普通方法。 xxx:(param..) <=> xxx.(self, param..)
  4. dofile("XXX")载入后每次调用可执行,loadfile("XXX")载入后不执行,require("XXX")载入后只执行第一次载入
  5. 哑元(dummy varialbe,_)
	-- 返回第二个匹配的值
	local _, x = string.find(s, p)
  1. Lua中只有false和nil的布尔值是false,其余(0和空table等)都是true
  2. Lua的数字只有double型,64bits
  3. userdata类型可以将任意的C数据保存到Lua的变量中
  4. Lua中没有C语言的三元符(x ? a : b),但有一个替代方案(x and a) or b。需要注意的是,以上方案在x为true,a为false,b为true的情况下与三元符的结果是相反的
  5. 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

posted on 2017-04-17 14:54  xGull  阅读(154)  评论(0编辑  收藏  举报

导航