Lua语言基础个人学习笔记

Lua语言基础个人学习笔记

学习网址:http://www.runoob.com/lua/lua-tutorial.html

基本约定

  • 脚本:要以xxx.lua命名,不用";"结尾,但是每一个语句要一行。
  • 注释:单行–,多行–[[ ]]–
  • 变量:不用声明(默认都是nil),可以直接赋值才会有类型。但是可以声明为local局部变量(默认为全局变量)
  • 赋值:可以多个变量进行赋值,多则省去,少则nil补,而且赋值语句是先进行右边的才进行左边赋值,即交换两个变量直接 x,y=y,x
  • 循环:1.for var=exp1,exp2,exp3 do \n <执行体> \n end ( var 从 exp1 变化到 exp2,每次变化以 exp3 为步长递增 var)。2.while(conditon) \n do \n <执行体> \n end 3.repeat \n <执行体>\n until(conditon)
  • 流程:if(condition)\n then \n <执行体> \n end
  • 函数:function Name(parameter ···) \n function_body \n return values \n end(可以返回多个值)

符号

  • 运算符号:比较特别的是"^"(乘幂),其他都是四则运算那些。
  • 其他符号:"…“用来连接两个字符串。”#"求一个字符串长度。

字符串

  • 格式化:%c - 接受一个数字, 并将其转化为ASCII码表中对应的字符;%d - 接受一个数字并将其转化为有符号的整数格式;%f - 接受一个数字并将其转化为浮点数格式;
  • 宽度数值和保留位数: %+一个浮点数,宽度数值为整数部分,保留位数为小数部分, 如浮点数转义符,%6.3f则设定该浮点数的占宽度数为6,浮点数小数只保留3位。
  • 对齐标识: 在指定了字串宽度时, 默认为右对齐, 增加-号可以改为左对齐.

匹配模式

  • 用于模式匹配函数 string.find, string.gmatch, string.gsub, string.match。
  • .(点): 与任何字符配对;%a: 与任何字母配对;%c: 与任何控制符配对(例如\n);%d: 与任何数字配对;%l: 与任何小写字母配对;%p: 与任何标点(punctuation)配对;%s: 与空白字符配对;%u: 与任何大写字母配对;%w: 与任何字母/数字配对。(若大写字母则与原来相反效果, 例如, %A表示与任何非字母字符配对)
  • [多个字符]:与任何[]中包含的字符类配对.。例如[%w_]与任何字母/数字, 或下划线符号”_“配对。 [^多个字符]: 与任何不包含在[]中的字符类配对。
  • ‘%’ 用作特殊字符的转义字符,因此 ‘%.’ 匹配点;’%%’ 匹配字符 ‘%’。转义字符 '%'不仅可以用来转义特殊字符,还可以用于所有的非字母的字符。
  • 模式条目:单个字符类跟一个 *- 都是将匹配零或多个该类的字符。不同的是*匹配尽可能长的串,而 -匹配尽可能短的串;单个字符类跟一个 +, 将匹配一或更多个该类的字符。 这个条目总是匹配尽可能长的串; 单个字符类跟一个 ?, 将匹配零或一个该类的字符。 只要有可能,它会匹配一个;
  • %bxy, 这里的 x 和 y 是两个明确的字符; 这个条目匹配以 x 开始 y 结束, 且其中 x 和 y 匹配是一对的。 意思是,如果从左到右读这个字符串,对每次读到一个 x 就 +1 ,读到一个 y 就 -1, 最终结束处的那个 y 记数为 0。 举个例子,条目 %b()可以匹配到括号平衡的表达式。

捕获

  • 模式可以在内部用小括号括起一个子模式;这些子模式被称为捕获物。 其实就是根据一个模式从目标字符串中抽出匹配于该模式的内容。在指定捕获时,应将模式中需要捕获的部分写到一对圆括号中。如:string.match( “score = 120”, “(%a+)%s*=%s*(%d+)”) 那么%a+匹配到的就存放在1号捕获物里,%d+匹配到的就存放在2号捕获物里。
  • %n, 这里的 n 可以从 1 到 9; 这个条目匹配一个等于 n 号捕获物的子串。

数组

  • 在 Lua 数组索引值默认是以 1 为起始。但是赋值的时候索引可以自己规定,如:
array = {10}
print(array[1])
for i= -2, 2 do 
   array[i] = i
end
for i = -2,2 do
   print(array[i])
end

那么一开始array[1]为10,后面输出为-2,-1,0,1,2;

  • 表是 Lua 的一种数据结构用来帮助我们创建不同的数据类型,如:数组、字典等。但是表的索引是可以用其他任何值来规定的。如:mytable = {"key1"=val1,1}那么mytable[1]的值为1,mytable[“key1”]的值就为val1&#
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值