lua-基础

lua-基础

起男 1,676 2021-09-05

lua-基础

lua是一种轻量小巧的脚步语言,用标准c语言编写并以源代码形式开放,其设计目的是为了嵌入应用程序中,从而为应用提供灵活的扩展和定制功能

数据类型

类型 描述
nil 这个最简单,只有nil属于该类型,表示一个无效值(在条件表达式中相当于false),lua中所有没有声明的变量都是nil
boolean 包含两个值:false和true,lua中除了nil以外其他的值如0都代表true
number 表示双精度的实浮点数
string 字符串由一对双引号或单引号来表示,还可以使用[[]] 来声明多行字符串,使用..进行字符串拼接
function c或lua编写的函数
table lua中的表(table)其实是一个“关联数组”,数组的索引可以是数字、字符串或表类型。在lua里table的创建是通过“构造表达式”来完成,最简单构造表达式是{},用来创建一个空表。如果不声明下表名称则下表从1开始

可以利用type()函数查看变量或值的类型

变量

lua生命变量的时候,不需要指定数据类型

-- 字符串
local str = 'hello'
-- 数字
local num = 20
-- 布尔
local flag = true
-- table,数组形式
local arr = {1,2,3}
-- table,map形式
local map = {name='zhangsan',age=20}

lua默认变量为全局变量,添加local后为局部变量
可以通过_G.xxx_G[xxx]的方式查看全局变量

访问table

-- 访问数组,下标从1开始
print(arr[1])
-- 访问map
print(map['name'])
print(map.name)

字符串类型和table类型可以使用 #xxx的形式查看长度

循环

数组

arr = {'java','python','lua'}
--遍历
for index,value in ipairs(arr) do 
    print(index,value) 
end

map

map = {name='zhangsan',age=20}
--遍历
for key,value in pairs(map) do 
    print(key,value)
end

数字下标使用ipairs迭代器,字符串下标使用pairs

自定义循环

while

local n = 10
while n > 1 do
	print(n)
    -- lua中没有+=
	n = n-1
end

for

-- 初始值,结束值,步长
for i=10,1,-2 do
	--循环时i无法改变
	print(i)
end

循环可以使用break跳出循环,lua不提供continue

函数

定义函数

function 函数名(参数列表)
    函数体
    return 返回值
end
--或
变量名 = function(参数列表)
	函数体
    return 返回值
end

lua中的函数可以返回多个值

条件控制

if 布尔表达式 then
    -- xxx
elseif 布尔表达式 then
	-- xxx
else
    -- xxx
end

lua中 不等于使用~=而不是!=

与java不同,lua的逻辑运算符是基于单词

操作符 描述
and 逻辑与
or 逻辑或
not 逻辑非