注释方法
–单行注释
–[[
多行注释
ctrl + /
–]]
结构类型
Lua的8大数据结构 用户,表,线,布,函,空,数,字,
number 数值类型
string 字符串类型
boolean 布尔类型
function 函数
nil 空类型
table 表格
thread 线程
userdata 用户数据
变量定义
变量名 = 赋值 禁止使用下划线+大写字母,如 _A
n1 = 10
print(type(n1)) --输出类型
变量初始化
a1,str1 = 10,“hello”
为初始化的变量,值为nil
a2,str2,str3 = 20,“world”
赋值操作符右侧的值多余左侧的变量时,多出的舍掉
number类型
整数,小数,有长度限制
string类型
双引号和单引号 " " ’ ’
n1 =10
str1 = tostring(n1)
print(str1,type(str1))
str2 = "100"
n2 = tonumber(str2)
print(n2,type(n2))
//字符串的连接 两个点 .. 注意前后都加上空格
a =“hello”
b = “world”
c = a .. " " .. b
//字符串函数 format len # 1个汉字等于3个字符长度
str = string.format("共有%d",7)
len = string.len(str)
print(str,len)
print(#"abcd")
boolean类型
与或非 and or not
and:如果and的左侧值为真,表达式的结果为右边的值,如果左边的为假,结果为左侧的值
or :如果or左侧的值为真,表达式的结果为左侧的值,如果左侧的为假,结果为右侧的值
not : 取反
关系表达式
// >= <= == > < ~=
print(1 ~= 2)
print(“2” >= “21”)
条件语句
if 2>0 then
print(2)
else
print(0)
end
if 0>2 then
print(2)
elseif 0>4 then
print(3)
else
print(5)
end
循环结构
while 没有自增自减
i =10
while i>0 then
i = i-1
print(i)
end
for循环 第三个参数默认1,从1开始
for i=0,10,2 do --从0开始,每次加2,直到大于10停止
print(i)
end
for i=10, 0, -1 do
print(i)
end
table 表
{} 下标从1开始
用作数组和链表
1.定义
tab = {"aa",10,true,{1,2}}
print(tab[3]) --true
tab[#tab +1] = 10
print(tab[5]) --10
2.插入到制定位置
table.insert(table,index,value)
3.插入到表最后
table.insert(table,value)
table.insert(tab,"hello")
print(table[6])
table.insert(tab,1,"aa")
print(tab[1])
4.删除表的内容
tab = {1,2,3,4,5,6,7}
print(#tab) --7
tab[7] =nil
print(#tab) --6
5.插入新的键值对
//用作字典使用 key value 下标就是key
tab ={key =10, n1 =20, r3 = "rrr"}
print(tab.key)
print(tab["key"])
tab.key2 =30
6.删除键值对
tab.r3 = nil
print(#tab) --#不适用于计算键值对的table
迭代器 ipairs pairs
1.ipairs 常用于遍历数组形式的表,遇到nil 就停止
tab1 = {7,6,5,4,3,2,1}
for i,v in ipairs (tab1) do
print(i,v)
if i> 3 then
break
end
end
2.pairs 常用于字典类型的表,遍历的结果是无序的,nil不会停止
tab2 = {key1 =1,key2 =2,key3 =3}
for k,v in pairs (tab2) do
print(k,v)
end
function 函数
1.返回1个值
function Add(arg1,arg2)
return arg1 + arg2
end
n1,n2 = 10,20
result = Add(n1,n2)
print(result)
2.返回多个值
function FF()
return 1,2,"cc"
end
a,b,c= FF()
print(a,b,c)
3.函数指针
fun = Add
r = fun(10,20)
print(r)
4.函数做参数
function GG( arg)
print(arg(2,3))
end
GG(Add)
5.函数作为表中的值的存在
-- text2(Add)
-- _math.AddFunc = Add
-- r = _math.AddFunc(10,20)
-- print(r)
局部,全局,算数运算符
^幂运算
print(2^32)
print(3/2) 默认双精度浮点型计算
局部变量的声明 使用local 关键字
function aa(oo) 参数永远是局部的
oo =12
local x=1
a =10
end
aa()
print(a) --10
print(x) --nil
print(oo) --nil
|
请发表评论