lua笔记
–**
## 1.注释
**
–单行注释
--[[
多行注释
]]
–2.编辑器scitd使用
–创建文件保存为.lua,然后运行
–调试快捷键:f5
–3.运算符
–不等于:~= and or not
–#返回字符串或表的长度
–字符串拼接 …
function test2()
local a="aaa"
local b="bbb"
--输出
--不换行输出:io.write(T1[i])
io.write(a.."-")
print(a..b)
end
--test2()
–4.数据类型
–定于数据,数据名直接赋值
–加local为局部变量,不加为全局变量
function test1()
local a=1
b=“bbb”
c=3.5
d=false
--设空
b=nil
--输出
print(a,b,c,d)
end
–5.函数创建:
–无参函数
function functionName()
–函数内容
print(“这是一个函数”)
end
–调用
–functionName()
--有参函数
function function1(value)
--函数内容
print("这是一个函数"..value)
end
--function1(1)
--可以存在变量里
test=function1
--print(test("-test使用"))
--参数数量可变
function testn(...)
local a={...}
for k,v in pairs(a) do
print(v)
end
end
--testn(1,5,4,6)
–6.循环
function test2()
--while循环
local a=1
while (a<3) do
print(a)
a=a+1
end
--for循环,for 开始数,结束数,每次递增数
for i=1,10,2 do
print(i)
end
--for each
tab={1,5,6,8,66}
for k,v in pairs (tab) do
print(k,v)
end
--repeat until循环(do……while)
local b=1
repeat
print(a)
a=a+1
until(a>5)
end
--test2()
–7.判断
function test3()
local a1=1
local b=2
local c=3
--if
if(a>b) then
print("a大于b,值为"..a1)
end
--if else
if(a>b) then
print("a大于b,值为"..a)
else
print("b>a,值为"..b)
end
--if elseif else
if(a>b) then
print("a大于b,值为"..a)
elseif(b>c) then
print("b>c,值为"..b)
else
print("c最大,值为"..c)
end
end
--test3()
–8 表
–求无序table里元素数量
function table_leng(t)
local leng=0
for k, v in pairs(t) do
leng=leng+1
end
return leng;
end
–数组
function tablea()
–数组初始化
tab1={1,2,3}
–指定值,赋值
tab1[2]=22
–添加
tab1[4]=4
table.insert(tab1,44)–在末尾插入
table.insert(tab1,4,55)–在索引为4的位置插入
–查找
–在 Lua 中索引值默认是以 1 为起始
print(tab1[2])–输出索引为2的
–移除
table.remove(tab1)--移除数组最后一个数
table.remove(tab1,3)--移除数组指定位置的数
--tab1=nil--删除整个表
--tab1[2]=nil--删除下标为2的
*–字典,初始化键值不用加""
tab2={name="lili",id="dd"}
--添加时,需要""
tab2["key2"]="key2"
–连接concat
fruits={"111","aaaaa","bbbb"}
print("连接后",table.concat(fruits))
-- 指定连接字符
print("连接后",table.concat(fruits,"!"))
-- 指定索引来连接 table
print("连接后",table.concat(fruits,".",2,3))
–遍历
–排序sort
table.sort(tab1)
table.sort(tab2)
--ipairs只能用来遍历数组
--ipairs按照索引从1开始,递增遍历,遇到nil就停止
for k,v in ipairs (tab1) do
print(k,v)
end
print("数组数量"..#tab1)--数组内元素数量
print("数组数量"..table.getn(tab1))--数组内元素数量
print("-----------------------")
--pairs只能用来遍历字典,也可以用来遍历数组
--pairs迭代table,遍历表中所有的key和value
for k,v in pairs (tab2) do
print(k,v)
end
print(table_leng(tab2))--字典内元素数量
–最大值
function GetMaxNum(tab)
local tem=0
for k,v in pairs(tab) do
if(tem<v) then
tem=v
end
end
return tem
end
print("表中最大值:",GetMaxNum(tab1))
end
tablea()
–排序
table.sort(tableName);