Lua初探笔记初步
2017-07-09 15:55
169 查看
Lua所提供的机制是C不善于的:高级语言、动态结构、简洁、易于测试和调试等。易整合语言(glue language)。可扩展性;简单;高效率;与平台无关。
1.Lua认为0和空串都是真,仅有false和nil为假。
1.Lua认为0和空串都是真,仅有false和nil为假。
lua 8种类型:number,string,function,nil,boolean,userdata,thread,table. f={"a","b","c"} list=nil for line in f do list={next=list,value=line} end lua 3种if语句: if bool then --body end; -- if bool then --body else --body end; -- if bool then --body elseif bool then --body else end; lua for语句 2类: for var=exp1,exp2,exp3 do end; exp3默认step=1 for i,v in ipairs(a) do --对num进行遍历 end for i,v in pairs(a)do --对table进行遍历 end o:func(n) <--> o.func(o,n) unpack(a) --返回a的所有元素 unpack的lua代码实现: function unpack的lua代码实现(t,i) i=i or 1 if t[i] then return t[i] ,unpack的lua代码实现(t,i+1) end end ()用来函数定义和使用,{}用来定义table,[]用来索引table元素。 tab={d=function () print("tab.d") end} function tab.a() print("tab.a") end tab.c=function () print("tab.c") end for i,v in pairs(tab) do tab[i]() or v() end table.sort( tab,function (a,b) return a<b end ) 6.1闭包: function newCounter() local i = 0 return function () i=i+1 return i end end c1=newCounter() print(c1()) print(c1()) OldSin=math.sin function math.sin( x ) return OldSin(x*math.pi/180) end 尾调用。 7.1迭代器与闭包: 迭代器可以遍历集合的每一个元素。 function list_iter( t ) local i = 0 local n = table.getn(t) --lua5.2后 table.getn()已失效 return function () i=i+1 if i<=n then return t[i] end end end; list_iter是一个工厂,每次调用他都会创建一个闭包(迭代器本身),闭包保存着内部局部变量(i,n,t). list_iter中是返回t中的下一个元素值,直到nil。所以我们可以通过一个循环语句遍历list_iter迭代器 来达到遍历t中每一个元素的效果。
lua范性for的两种实现ipairs()的方式: 1:非闭包实现ipairs(): function iter(a,i ) --迭代器/迭代函数 i=i+1 if a[i] then return i,a[i] else return nil end function aaa( tab ) --返回迭代函数(iter、状态常量(tab)、控制变量(0),将状态常量和控制变量作为参数调用迭代函数。 return iter,tab,0 end tab={"zzz","bbb","de"} for i,j in aaa(tab)do print(i,j) --输出 end ----------------------------------------------- 2.闭包实现ipairs() function bbb( tab ) local i = 0 --作为下面匿名函数的upvalue,和下面匿名函数共同构成一个闭包。 return function () i=i+1 if tab[i] then return i,tab[i] else return nil end end end for i,j in bbb(tab)do print(i,j) --输出 end
相关文章推荐
- Lua学习笔记--函数初探
- DELPHI中集成LUA脚本学习笔记1_初探LUA
- LuaJava学习笔记[1]初探Lua
- Lua入门系列----pil学习笔记之 Type and Values
- Spring笔记之一(初探Spring)
- Lua 学习笔记之 function、closure和upvalue
- LUA学习笔记3 - Compilation, Execution, and Errors
- XML学习笔记---初步探索XML(转)
- SymbianOS Series 60学习笔记三:数据库初探
- Lua学习笔记四--返回值和UserData
- Lua学习笔记二--在Lua中使用自己的C函数
- SymbianOS Series 60学习笔记三:数据库初探
- Lua学习笔记一
- Lua入门系列----pil学习笔记之Type and Values (2)
- Lua学习笔记五--真正的入门:编写Lua扩展库
- Lua入门系列----pil学习笔记之Getting Start
- Lua入门系列----pil学习笔记之Type and Values (2)
- [LUA学习笔记04]Lua语法--数据类型
- LUA使用笔记
- LUA学习笔记(1)