写这些都是针对有经验又不想看文档的程序员
Lua 中有八种基本类型: nil、boolean、number、string、function、userdata、 thread 和 table。
nil相当于其它语言的null, false和nil为假,其它均为真 表、函数、线程、以及完全用户数据在 Lua 中被称为 对象: 变量并不真的 持有 它们的值,而仅保存了对这些对象的 引用。 table 是hash随机存储key,所以for循环输出一个table时并不会按定义时的顺序输出
变量定义
name = value --全局变量 local name = value --局部变量 local tbl = {} --空的table tbl.name = value tal['name'] = value
语句控制结构
while exp do block endrepeat block until expif exp then block {elseif exp then block} [else block] end
goto 语句
goto Name --goto到指定标签名 Name 首字母不能是小写 可以为 "_":: Name :: --标签名
for 语句
for val=e1,e2,e3 do block end 例: for val=1,9 do print(val) end --输出1到9 for namelist in explist do block end例: local list = {t=1,e=2,s=3,t=4} for k,v in pairs(list) do print(k,v) end
函数定义
该语句
function f () body end
被转译成
f = function () body end
该语句
function t.a.b.c.f () body end
被转译成
t.a.b.c.f = function () body end
该语句
local function f () body end
被转译成
local f; f = function () body endPS: 函数使用需要先声明
其它:
取字符串长度 #str 字符连接:“..” table 下标是从1开始
string.gsub 简单例子
local arr = {bidword=12321,plandid=3456}local x = "http://catct.cn/?bidword={bidword}&{plandid}"local str = string.gsub(x,"{(%w+)}",arr)--输出结果:http://catct.cn/?bidword=12321&3456
函数调用(self 的使用)
local x = {}function x:test( str ) print(str) --call function self.echo ('test') --test self:echo ('test') --table: 0xabee40 test self.print ('test') --输出空 self:print ('test') --testendfunction x.echo( ... ) print(...)endfunction x:print( ... ) print(...)endx:test('call function')
参考文档: