首页 > 代码库 > 2016-11-26(初学lua-了解篇)
2016-11-26(初学lua-了解篇)
---------------------------------------------闭包------------------------------------------------------
一个函数内 返回另一个函数
作用是函数A在调用结束之后不会被垃圾回收机制回收
暂时 可以理解为 因为A返回了B 外面对 A里面的B进行引用 而 B依赖A存在
闭包实现方式 函数A return 直接定义函数B
------------------------------------------------------可以一条语句上赋很多值------------------------------------------------------
A,B,C,D="sasd","sd",4,542,"sd" //多余的将被舍弃
//函数也可以返回很多值
没有赋值的 变量默认是nil
函数前面加上 local 就是局部函数了
------------------------------------------------------Table------------------------------------------------------
//Table 就是一个map 吧 但是他这个 map 很有意思 怎么讲
键值 是不固定的 数据格式 可以是字符串可以是 数字 什么的 这就有点爽了 想放什么当做键值 都行 都能找到与之对应的 实质
定义 table的时候甚至不用告诉编译器他是table 直接上 value=http://www.mamicode.com/{num,name}
然后用.来调用 value.num
但是有更爽的方式
value=http://www.mamicode.com/{[20]=5,[name]="sd"}
value[20] 这岂不是更像!
lua的下标不是从0开始的 是从1开始的
------------------------------------------------------数组------------------------------------------------------
数组和table 好像啊。
value=http://www.mamicode.com/{21,15,154,1543} 其实他等价于 value={[1]=21,[2]=15,[3]=154,[4]=1543}
甚至 可以定义不同类型的数组!天,厉害了呦。
value=http://www.mamicode.com/{1524,"asda",3.154,func(s) return s+1 end} value[4](2) //天了噜 cool
#arr 是arr的长度
//lua是通过 table 来管理全局变量的 放在了 _G里面 可以通过 _G.value 来访问 value
有两个 a,b 变量 让b成为a 的内容 只需要 setmetal(a,{_index=b})
-----------------------------用这种办法生成lua对象.
//创建类的 实例
//继承
2016-11-26(初学lua-了解篇)