Lua快速入门
变量
lua中声明变量不需要事先声明,只需要直接赋值一个变量
a=1
b=2
a,b=1,2
这两个变量默认全局变量,除非
local a=1
这样,在别的文件中就不能使用了——变为局部变量
nil
指没有被声明过的变量,类型为nil,如:
print(c)
其实c并没有被声明,则输出打印为nil
number
类型c中的int,float等等,在lua中统一为number类型(支持16进展、科学计数法。。。)
运算符
+、-、*、/、^、左移右移等
字符串
使用“”或者‘’都视为字符串,支持转义字符
a="123"
b='123'
另外,使用双中括号保证字符串原始值
c=[[123/n123]]
字符串链接使用两个点
c=a..b
转换(失败输出nil)
c=tostring(10)
n=tonumber("abc")
字符串加井号输出长度
print(#a)
函数
function function_name(函数参数)
--body
end
–或者
f = function(函数参数)
–body
end
返回值默认为nil,支持一次性返回多个值
function f(a,b,c)
return a,b
end
local i,j = f(1,2)
print(i)
print(j)
table
a={1,"ac",{},function() end} --类似c中的数组,但不一样的是第一个下标为1
a[5] = 123 --赋值第五个元素,否则第五个元素为nil
print(#a) --打印table下表
table.insert(a,"d") --插入
table.insert(a,2,"d") --从第二个位置插入,后面的往后移一位
table.remove(a,2) --移除特定位置元素且返回
字符串下标table
a={
a=1,
b="1234",
c=function()
end,
[",;"]=123
}
print(a[",;"]) --读出a与[",;"]的值
a["abc"]="abcd" --声明特定下标
全局表
特殊的table
称为_G,用于存储所有全局变量
a=1
print(_G["a"])
print(_G["table"]["insert"]) –打印出全局变量table中的函数insert(table类型也就是table)
布尔
C中!=在lua中为~=
a=true
b=false
print(a and b) –false
print(a or b) –true
print(not a) –false
–lua中只有nil与false代表假,其他都代表真,包括数字0
a=nil –为假
b=0 –为真
print(a and b) –nil(返回a值) –若a为false,则返回a,否则b
print(a or b) –0(返回b值) –若a为true,则返回a,否则b
print(b>10 and "yes" or "no") –no
if
if 1>10 then
print("1>10")
elseif 1<10 then
print("1<10")
else
print("no")
end
end代表代码块
循环
- for
- while
- repeat(同while)
for i=1,10 do
print(i) --1,2,3,4,5,6,7,8,9,10
end
for i=1,10,2 do
print(i) –1,3,5,7,9
end
for i=1,10 do
print(i) –1,2,3,4,5,6,7,8,9,10
i=1 –不能对循环值进行更改,在lua中默认新声明一个local i
end
for i=1,10 do
print(i) –1,2,3,4,5
if i=5 then break end
end
local n=10
while n>1 do
print(n)
n=n-1 --lua不支持n--、n-=1等自减
end