Lua语法总结

本文详细总结了Lua语言的关键语法,包括字符串拼接、table的使用、函数定义与匿名函数、局部与全局变量、类型转换、元表与元方法、协同程序、垃圾回收机制以及数学库的运用。通过实例展示了Lua的灵活性和强大功能,适合Lua初学者和进阶者阅读。
摘要由CSDN通过智能技术生成

1.字符串拼接用…表示,例如str1…str2,不能用加号。
如果在字符串之间用算术符的话,会直接转成数字运算,例:“2”+“3” ,结果就是5

2.table可以用来做数组,也可以用来做字典,table是不固定大小的。
数组形式:tab1={“one”,“two”,“three”};
字典形式:tab2={key1=“one”,key2=“two”}
删除并不影响其他的其他的数据,只会让自身的数据消失
tab2.kay1=nil
本来有的可以直接覆盖进行修改
tab2.key1=1
本来没有的可以直接添加,但是tab2必须存在
tab2.kay3=1
tab2[“kay3”]=1
遍历
for kay.val in pairs(table) do
print(tab2.kay)
end

3.Lua 的使用是不需要类型的
4.end 表示的是语句的结束,类似于}
5.函数
function test(n)
if n==1 then
return n
end
end
test2=test
函数能赋值,也能作为参数传递,类似于c#的委托和事件
if后面要带then

6.匿名函数:只需要使用一次,少量代码
testFun(tab,
function(k,v)
print(k…"-"…v)
end
)

7.nil 的布尔值默认为false
8.userdata(自定义类型),可以用来存放c/c++的数据,让lua使用
9.lua定义默认都为全局变量,lua是根据数据来改变类型的,可以用local 来定义局部变量,尽可能地使用局部变量
10.如果函数没有被调用,里面的变量也不会赋值,就算是全局变量
11.局部和全局变量重名,优先访问局部变量,do end是一段代码段
do
local a=10
print(a,b)
end
12.多个变量同时赋值
a,b,c=10,20,“hello”
直接交换,lua会先计算右边的值,再进行赋值
a,b=b,a
值的数量多于变量,多出来的会被忽略
变量的数量多于值,多出来的会被赋值nil
13.多值return
function test()
return 40,50
end
a,b=test()

14.一些不同的运算符
~=表示不等于
and or not 表示与或非
#取尾部索引,如果有键值对的话
…表示可变参数,arg会保存可变索引的值,但是尾部有存储个数的值,所以#arg的话取到的只是个数,不是长度

15.函数也尽量用小写,因为lua里面很多大写保留字

16.string.upper(),string.lower()用来转换大小写。
string.reverse()用来翻转,string.gsub(str,“里面的字符”,替换的数据)
string.char[arg]用来把数据转换char类型
string.byte[arg]用来把字符转换成number类型
string.match() 模式匹配,正则表达式

17.lua索引默认都是从1开始的,但是索引却可以是任何值(包括负数和0)
18.引用类型的赋值都相当于把指针指到了同一片区域,相当于浅拷贝,一个改变则会影响到另一个,但是一个置nil,并不会影响到另一个的指向。
19.二维数组
table={ {},{},{}}
table[1]={1,2,3}
table[2]={4,5,6}
table[3]={7,8,9}
for k,v in pairs(table) do
for k,v in pairs(table[k]) do
print(k,v)
end
end
20.table的一些函数
table.concat(mytable,“分隔符”) 把table里面的东西拼接起来,但是只能是一维的
table.insert(mytable,插入位置,插入值)默认为插入末尾
table.remove(mytable,移除位置)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值