注释
单行注释:
-- 单行注释
多行注释:
--[[
多行注释
--]]
变量
变量类型:
1.boolean:true/false,没啥好说的
2.string:字符串类型,没啥好说的
3.number:32位数字类型
4.table:类似于 c 的数组,下标从 1 开始
5.function:函数类型,可以有多个返回值
6.userdata:用户自定义数据类型,满足 lua 和 c 的交互
7.thread:lua 不支持真正的多线程,thread 只是一种协同程序
if 语句
if(...) then
...
elseif(...) then
...
else
...
end
for 语句
-- 普通
for i = 初始值,结束值,每次变动值 do
...
end
-- 迭代
for i,arr in pairs(数组名) do
print(arr)
end
while 语句
-- lua 中的 while
while(...) do
...
end
-- lua 中的 do while
repeat
...
until(...)
逻辑运算符
&& -> and
|| -> or
!(...) -> not(...)
!= -> ~=
i++ -> i=i+1
定义 function
-- 正常函数
function 函数名(参数名)
...
end
-- 函数名绑定变量
变量名 = function 函数名(参数名)
...
end
-- 多返回值
function func()
a = 1
b = 2
return a,b
end
ret1,ret2 = func()
table 数组
-- 初始化空 table
arr1 = {}
-- 初始化带值 table
arr2 = {1,2,3}
-- 使用下标访问 table
print(arr2[1])
-- 字典
arr3 = {k1=1,k2=2,k3=3}
-- 使用 key 访问字典
print(arr3["k1"])
-- 获取 table 的长度
print(#arr2)
print(table.getn(arr2))
-- 获取字典长度
count = 0
for k,v in pairs(arr3) do
count = count + 1
end
-- 拼接
table.concat(变量,分隔符,开始位置,结束位置)
-- 插入
table.insert(变量,位置,值)
-- 删除
table.remove(变量,位置)
lua 中的面向对象
-- 定义空类
myClass = {}
myClass.__index = myClass
-- 定义类成员
myClass.a = "*"
--构造函数
function myClass:new(value_a)
local obj = {}
obj.a = value_a
setmetatable(obj,myClass)
return obj
end
-- 成员函数
function myClass:display()
print("a = "..self.a)
end
-- 测试
local obj_test = myClass:new("hello word")
myClass:display() -- 打印 *
obj_test:display() -- 打印 hello world
lua 标准库
string
-- 获取字符串长度
string.len(字符串变量)
-- 大小写转换
string.lower(字符串变量)
string.upper(字符串变量)
-- 反向
string.reverse(字符串变量)
-- 截取
string.sub(字符串变量, 开始位置, 结束位置)
-- acsii 转 字符串
string.char(97, 100, 101,...)
-- 字符串 转 acsii
string.byte(字符串变量,开始位置,结束位置)
-- c 中的 format 格式化
string.format("字符串:%s\n整数:%d\n小数:%f\n十六进制数:%X","qweqwe",1,0.13,348)
-- 查找子串位置
string.find(字符串变量, 子串)
-- 格式化查找子串
string.match(字符串变量, "%d")
math
-- lua 可以表示的最大数字
math.huge
-- 生成 1 ~ 100 的随机数
math.random(1,100)
os
-- 程序运了多久
os.clock()
-- 系统当前时间戳
os.time()
-- 获取年月日时分秒
os.date()
-- 执行 cmd 命令
os.execute("ipconfig")
-- 正常退出
os.exit(0)
-- 设置中文简体区域
os.setlocale("chs")
-- 获取进程环境变量值
os.getenv(环境变量名)
io
主要是一些对文件的操作,内容较多自行百度 😃