[关闭]
@delight 2014-05-02T12:35:36.000000Z 字数 836 阅读 1459

lua5.2 要点摘记

lua
虽然python很好用了,但是纯C嵌入lua才是王道啊:)

  1. 只有nil和false直接对应false,'0'和0都对应true(坑);
  2. 注释使用 ----[ ]--[[ ]]表示原生字符串;
  3. 所有变量默认全局…使用local修饰局部变量(坑);
  4. 控制句式类似vb这种,用if...then...elseif...else...end, while...do...end, repeat... until...
  5. 不等于用~=(坑);
  6. 逻辑关键字and, or, not(同python)
  7. 字符拼接用..(坑);
  8. for i = begin, end, internal do...这种比较奇葩的句式;也可以用in,类似python那种;
  9. 函数用function xxx(para1,para2)...end这种(同javascript);
  10. 匿名函数直接用function() .. end
  11. 可以直接使用某些FP的特性,不需要python里面functools.partial这种绑定机制;
  12. 支持多值返回;
  13. 内嵌table类型,类似python中的dict,语法是{a=xxx,b=xxx}{[a]=xxx,[b]=xxx}
  14. 数组其实还是table…{1,2,3}等价于{[1]=1,[2]=2,[3]=3}
  15. 是的,你没看错,lua的数组下标是从1开始的!(天坑);
  16. 数组的长度使用#操作取得;
  17. 全局变量都被管理在一个名为_Gtable里面;
  18. MetaTable用来重载内置函数(操作符),使用setmetatable设置…;
  19. 可以用prototype模拟面向对象,虽然看着有点蛋疼;
  20. 使用require("xx")来导入其他模块(后缀为.lua的文件),和python一样,在导入的时候会执行全局程序,但是只执行一次;用dofile("xx.lua")则每次都执行;而loadfile("xx.lua")可以在需要时再执行,执行方式是直接在模块后面再上调用操作符()
  21. 与C交互使用virtual stack
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注