lua脚本的使用
-
lua字符串连接符不是+,而是 ..
例如 "adc".."def" 的结果是"adcdef" -
变量定义
- 局部变量: local 变量名字 = 123;
- 全局变量: 变量名字 = 123;
-
字符串表示方式 "adc" 或者 ‘adc’
-
循环
-
for i=1,终值,步长 do 逻辑代码 end
local rt = {} for i = 1,10,1 do rt[i] = i end
-
for k,v in ipairs(rt) do 代码 end, 数组用 ipairs ,对象用 pairs
local i = 10 for k,v in ipairs(rt) do rt[k]=v.."value" end
-
while 条件 do 代码 end
local i = 10 while i<20 do rt[i] = i.."a" i = i+1 end
-
repeat 代码 until 退出条件
local i = 10 repeat rt[i] = "b"..i i = i+1 until i>20
-
-
分支
local a = 1 if a=1 then print(1) elseif a=2 then print(2) else print("其他") end
-
方法定义
参数...表示动长参数数组,使用{...} 获取local f = function(a,b,...) local args = {...} return args end
-
内置函数
-
string.len(string) 取字符串长度
-
string.lower(string) 小写
-
string.upper(string) 大写
-
string.rep(string,n) 的到重复多少次的字符串
-
string.sub(string,start,end) 字符串截取 1 开始 ,-1 表示结束
-
string.char(数字) 把数字转成字符串
-
string.byte(字符串,i,j) 把字符串的一部分转成数字
-
string.find(字符串,pattern) 字符串查找
-
string.gsub(s,pattern)
-
table.concat(table,分隔符,i,j) 把数组转换成字符串
-
table.insert(table,[pos],value) 在指定位置插入一个元素,后面的依次向后移动
-
table.remove( table,[pos]) 在指定位置弹出并且删除一个元素,后面的元素前移动
-
table.sort(table, function)排序
-
math.abs(a) 绝对值
-
math.ceil(a) 向上取整
-
math.floor(a) 向下取整
-
math.max(a,b) 取大的值
-
math.min(a,b) 取小的值
-
math.random() 返回0-1的随机数,math.random(a) 返回1-a的随机数,math.random(a,b) 返回a-b的随机数
-
math.radomseed(x) 生成随机数种子,设置了这个影响 math.random的值
-
cjson.encode(table) table类型转换成jsonString
-
cjson.decode(jsonString) jsonString转成 table类型
-
cmsgpack.pack(table) table类型系列化成string
-
cmsgpack.unpack(string) 把字符反系列化成table
-
-
数据类型
- lua是弱类型语言和js类似
- 数字类型表示:local a = 1;
- 字符串表示:local b = "123";
- 数组类型表示:local c =
- 数组类型的访问 c[1],c[2],需要注意的是 lua的下标是1 开始的。
- 对象类型表示 local d =
- 对象类型的访问 d["key1"],d["key2"]
- 数组类型和对象类型在lua里面都叫做table
-
获取字符串或者table类型的长度使用 #变量名
返回动态参的长度local f = function(a,b,...) local args = {...} return #args end
-
lua区分大小写
-
单行注释--
-
多行--[[ ]]
-
lua的不等于 是 ~=
-
逻辑运算符: and ,or , not
-
类型转换 tonumber,tostring
-
lua的 语句结束不需要使用 分号,但是用也可以
posted on 2023-03-04 20:21 zhangyukun 阅读(334) 评论(0) 编辑 收藏 举报