Lua特色:小,启动块,功能强大,方便与数组语言进行交互,与C++/C进行交互,Lua是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
Lua官网:https://lua.org/
Lua语言默认是动态类型(弱类型的)是大小写敏感的,默认是全局变量的,自带GC(内存垃圾回收)的。
Lua语言的变量类型:
nil 空 boolean布尔 number数字(不区分整数浮点数,都是double类型) string字符串 function函数 userdata允许语言本身进行扩展,违背定义的类型可以直接被注册成C/C++实现自己的一个数据结构去用 thread线程 table(难点)
(内置变量尽量不用_G这种类似的开头)
不加入修饰符的话,lua中的变量默认是全局的
local a(局部变量)
注释 –单行 [[]]多行 [==[ ]==]嵌套
赋值 多复制 a,b=123,’asd’ a,b=b,a
顺序 分支 循环
if age>18 then
print()
elseif age>80 then --elseif中没有空格
print()
else
print()
end
for i=1,10,2 do
print()
end
while a<=10 do
print()
if a>=8 then
break
end
end
repeat untill ——类似其它语言中的do...while
a=1
repeat
print(1)
a=a+2
until a>=10
与其他语言中不同的是,在lua语言中0是true而不是false
运算 + – * / //(整除) % ^(阶乘)
没有 ++ — += continue
关系运算 > < >= <= == ~=(不等于)
逻辑运算 and or not(逻辑运算取反的优先级比较高)
位运算
table基础
lua中唯一的一个内置数据结构table,定义:a={1,2,3,4,5,“a”,“b”,x=123,y=456,pos={q=123,w=456,[“z”]=789}}
print(a.pos.z)
a.z=789
nil不能做键值 即为键值对1 2 3 4 5 6 7 x y
print(a[1]) ——下标从1开始,但可以有变量名/键值对 为下标 print(a[x]) 123
定义访问 table.key语法糖 tableXXX[“key”]
a[“z”]=789 print(a.z)
遍历 for k,v in pairs(a) do –k v即为键和值
print(k,”:”,v)
end
存储的顺序是不确定的,尤其是自定义给定的键值,对于直接基于的下表时,是用哈希表的方式进行存储的,也就是说不保证定义的顺序就是存储的顺序
遍历 for k,v in ipairs(a) do –ipars不遍历自定义键值
print(k,”:”,v)
end
遍历 pairs ipairs后边这个不遍历自定义下标
–函数
add=function(a,b)
return a+b
end
print(add(1,2))

