首页 > 代码库 > 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-了解篇)