Lua基础知识与语法

单行注释:--

多行注释:--[[ 

                 --]]  


lua一共有8种数据类型

    1.nil  空类型  (声明一个变量没有初始化,默认为nil)

    2.number  数值类型

    3.boolean  布尔值  (只有false和nil为false,其他都为true,包括0)

    4.string  字符串类型

    5.userdata  自定义类型

    6.function  函数类型

    7.thread  线程

    8.table  表

print(type(nil))

print(type(1.23))

if 0 then
print("0为真")
end

print(type("string"))

function fun()
end
print(type(fun))

print(type({}))

结果如下:

Lua基础知识与语法_第1张图片


当我们需要定义一个局部变量需要在变量前加上 local关键字

function func()
local x = 1
j = 1
end
func()

print(x)
print(j)

Lua基础知识与语法_第2张图片


lua里面的3种循环

1.while() do
end
2.for i=a(初始化),b(目标条件),c(自增,如果没有指定就默认1) do           for k,v in iparis(参数为需要遍历的对象) do  (类似其他语言的foreach)
end							             end
3.repeat do
end
until(条件,false继续执行循环体,true跳出循环)

重点是第三个循环 ,类似与do while ,首先是先执行一次 ,再检测条件,条件与do while相反

i = 0
repeat do
i = i + 1
print(i)
end
until(i >= 10)
Lua基础知识与语法_第3张图片

函数

私有函数声明为 :

local function function_name()

end

参数数量可以固定的也可以可变的, ...表示为可变参数

函数可以有多个返回值

function func(table,...)
return table,...
end

print(func({},1,2,"string"))

Lua基础知识与语法_第4张图片


算术运算符

1.+  加

2.-  减

3.*  乘

4./  除

5.%  除于

6.^  乘幂

7.-  负号

关系运算符

1.==  等于

2.~=  不等于

3.>  大于

4.<  小于

5.>=  大于或等于

6.<=  小于或等于

逻辑运算符

1.and  与

2.or  或

3.not  非


字符串的3种定义方式

1.'lua'

2."lua"

3.[[lua]]


数组

数组的下标默认从1开始 ,可以指定下标,下标也可以为负

array = {"a","b","c"}
for k,v in ipairs(array) do
print(k)
end

arr = {}
for i=-1,1,1 do
arr[i] = "value --  "..i
end
for i=-1,1,1 do
print(arr[i])
end

Lua基础知识与语法_第5张图片

刚才发现了个问题,如果我们指定下标为负的数组,如果使用泛型for遍历:

arr = {}
for i=-1,1,1 do
arr[i] = "value"..i
end
for k,v in ipairs(arr) do
print(k.."--"..v)
end

Lua基础知识与语法_第6张图片

由输出结果得知:lua内置的迭代器ipairs是从下标1开始迭代的,如果我们想从下标为负的索引迭代,只能我们自己写迭代函数咯,或者使用pairs

arr = {}
for i=-3,3,1 do
arr[i] = "value"..i
end
for k,v in pairs(arr) do
print(k.."--"..v)
end

Lua基础知识与语法_第7张图片

从结果看,pairs迭代是看不出声明规律,而且索引之间的间隔不能超过1,到时候看看pairs内部是怎么实现的。


其他知识点

..  拼接

#  获取字符串和表的长度

select(#,...)  获取可变参数长度

你可能感兴趣的:(Lua学习笔记,lua)