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 | 逻辑非 |