0%

lua快速入门

Lua快速入门

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