运行环境
变量
变量声明:直接赋值(全局),加local只能在当前作用域里用;
没有被声明过的变量类型都是nil,值也是nil;
可以同时给多个变量赋值,比如 a,b = 1,2
如果 a,b,c = 1,2 则c=nil
数值型:只有number,支持进制和科学计数法,支持乘幂符号,如2^5
字符串的使用
字符串:用双引号或者单引号表示,支持换行符\n
多行文本:[[……]]
字符串连接符号:”..”,如 a..b
tostring:数字转成字符串
tonumber:字符串转成数字
查看字符串长度:”#”,如 #a
函数的使用
函数:
function f(a,b)
print(a,b)
end
返回可以用return,可以返回多个值
table的基本用途
table:什么都可以存,a = {1,”ac”,{},function() end};下标从1开始;
用#也可以获得table的长度
insert: 插入 ,如table.insert(a,”d”);table.insert(a,2,”d”)
remove: 移除 , 如 table.remove(a,2),并且返回移除的值
可以构造以字符串作为下标的table:如
a = {
a=1,
b="123",
c=function()
end
}
a["a"] = 1;
全局表_G:所有元素都在全局表中
逻辑判断
逻辑判断:不等于是~=;其他与C类似
支持 and 、or 、not
lua里数字0也代表真,nil代表假
三目运算: 如 b > 10 and “yes” or “no”
if语句
if a>10 then
print(1)
elseif a>5 then
print(2)
else
print(0)
end
循环
for循环
for i = 1,10,2 do //从1到10 步长为2
print(i)
end
注:在for循环里不能对i进行修改,可以break
while循环
local n = 10
while n > 1 do
print(n)
n = n - 1 //lua里面不支持自减自加
end
其他
string.char:可以把ascll码变为字符串
string.byte: 可以直接取出一位,如 n = string.byte(s,2)
GitHub Issues