记录整理下知识点,供自己回忆参考。
Lua结尾可以不加“;”
print("HelloLua!!")
代码注释
单行注释:--
多行注释:--[[ ]],--[[ --]], --[[ ]]--
变量与基本数据类型
- 数值类型:可以存储整数和小数;
- 布尔类型:只有 true 和 false 两个值;
- 字符串类型:双引号,单引号都可以,lua 中无 char 类型。
- type()方法,可以获取一个变量的类型。
- 变量默认值为 nil。
字符串
- 字符串表现形式“”,‘’,[[]]。[[]]是原格式输出
- 字符串相连使用..
字符串操作
- string.upper(字符串):全部转大写字母。
- string.lower(字符串):全部转小写字母。
- string.gsub(原始字符串,旧字符串,新字符串,[替换次数])替换次数不写表示全部替换。
- string.find (str, substr, [init, [end]]):在一个指定的目标字符串中搜索指定的内容(第三个参数为索引),返回其具体位置。不存在则返回 nil。
- string.reverse(arg):字符串反转
- string.format(...):对字符串进行格式化。%s:代表字符串.%d:表示一个整数数字.%f:表示一个小数
- string.char(arg) 和 string.byte(arg[,int]):char 将整型数字转成字符并连接, byte 转换字符为整数值(可以指定某个字符,默认第一个字符)。
- string.len(arg):计算字符串长度。单个字母,数字,符号长度都为 1;单个汉字长度为 2
- string.rep(string, n):返回字符串string的n个拷贝
- string.gmatch(str, pattern):返回一个迭代器函数,每一次调用这个函数,返回一个在字符串 str 找到的下一个符合 pattern 描述的子串。如果参数 pattern 描述的字符串没有找到,迭代函数返回nil。
- string.match(str, pattern, init):只寻找源字串str中的第一个配对. 参数init可选, 指定搜寻过程的起点, 默认为1。在成功配对时, 函数将返回配对表达式中的所有捕获结果; 如果没有设置捕获标记, 则返回整个配对字符串. 当没有成功的配对时, 返回nil。
作用域
- 变量默认是全局变量,就算是声明在函数内的变量,也是全局变量。
- 使用local声明局部变量
- 变量默认值是nil
特殊符号
- “=”是赋值符
- “+”不能用作字符串相连,字符串相连为“..”,
- 没有++与--
运算符
- 算数运算符 + - * / %
- 关系运算符 > < >= <= == (!=)~=
- 逻辑运算符 (&&)and, (||)or, (!)not
- Lua 语言中无复合赋值运算符 += -= *= /= %=
分支结构if(没有switch )
循环结构
- break 立刻结束当前循环
- 没有continue
数组
-
可存放不同类型数据,数组下标从1开始
-
数组长度不固定
函数
- Lua是解析型语言,需要先声明函数,在调用。
- 函数可以直接作为参数来传递
------------声明函数-----------
function Hello()
print("Hello Lua")
end
function Add(a,b)
return a+b
end
------------调用函数-----------------
Hello()
local sum = Add(5,6)
print(sum)
------------函数作为参数传递---------------
function AddPro(a,b,func)
return func(a,b) --别忘了return
end
local sumD = AddPro(7,3,Add)
print(sumD)