Lua学习D_01

Chunks:

           chunk解释为lua的语句执行范围,可以是一个语句或者一系列语句的组合。

命令行方式:

           1、交互环境下运行lua,可使用lua命令行或者lua -i进入。也可使用dofile加载函数在lua交互模式下进行执行。

           2、使用lua -e将命令传入lua。

           3、使用lua -l加载一个文件。

类型和值:

           1、lua主要是Nil、Boolean、 Number(实数)、String、Function(可作为变量赋值,函数参数,函数返回值)、Userdata与Threads中Userdata可以存放C的数据,Thread。

           2、声明一个全局变量未赋值时为nil,删除一全局个变量可以将其赋值为nil。

表达式:

           1、主要是运算符的优先级:幂、not,-负值、*,/、+,-、..、<,>,<=,>=,-=,==、and、or

           2、lua的三元运算符,类似于C的a?b:c,lua的三元运算符格式为(a and b)or c。当b为false,无论a为何值,都返回c。当b为true时,a为true,返回b。a为false时,返回返回c。

           3、table的构造,表内的元素可以非常灵活;使用table的构造函数,每次构造函数都会创建一个新的table这样可以用来实现list;不推荐数组下标从0开始。

局部变量与控制结构语句:

           1、使用local创建一个局部变量,只在一个chunk或者一个block内有效。

           2、一般控制结构语句if、do、while、for等需要一个end作为block的结束标识。

           3、repeat until,重复  直到。

           4、for的三个变量,var = exp1,epx2,epx3,一般默认epx3为1,解释为从exp1循环到epx2,每次增加epx3。

           5、泛型for循环,可用来迭代循环函数的返回值、可用来遍历table。

函数:

           1、函数可作为函数的参数,也可作为table的初始化函数。

           2、函数的unpack方法作为泛型调用机制,实现可变参数。

           3、函数的形参内使用...来表示可变参数,一一匹配实参,剩下的参数放入args内。

           4、为了获得特定的参数,可以使用虚变量(_)。也可以使用可变参数...来实现。

闭包(匿名函数?lamb表达式)参考JS语言闭包:

           1、函数名是一个指向函数的变量,可使用.指针来指向函数。

           2、函数的简写,语法糖。内部匿名函数访问外部函数的变量称为词法定界,内部匿名函数变量称为外部的局部变量。引申出闭包是一个函数可以访问的外部的局部变量。

           3、闭包使用在回调函数使用外部的局部变量时,类似于bind,可使用当前外部函数的变量。

非全局函数:

           1、将函数保存在一个局部变量内,得到一个局部函数,其命名方式可以是将局部变量赋值给函数,也可以将函数修饰符为局部。

           2、尾调用:在return 行添加尾调用,类似于goto,不会使用外部函数的栈,这样可以实现无限尾调用而不会栈溢出。要正确的使用尾调用。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值