Lua介绍
1、Lua 是一种轻量小巧的脚本语言,用标准 C语言编写并以源代码形式开放, 其设计目的是 为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
2、Lua 中有 8 个基本类型分别为:nil、boolean、number、string、userdata、function、thread 和 table。
Lua语法
1_注释
-- 单行注释
--[[
多行注释
--]]
2_基础语法
-- ..代表拼接
str="helllo".."world"
-- 同时为几个元素赋值 -- c为nil
a,b,c=1,2
-- 幂运算
c=a^2
-- 关系运算符之不等
print(a~=b)
-- 逻辑运算符
print(true or false)
print(not true)
-- 其他运算符之长度
print(#"str")
3_流程控制
1、条件
a,b=10,20
if(a>b)
then
print(a)
else
print(b)
end
2、循环
-- while 循环
a=10
while(a>0)
do
print(a)
a=a-1
end
-- repeat until 循环
b=10
repeat
print(b)
b=b-1
until(b<1)
-- 数值for循环 -- 第三个参数代表步长,不写默认1 -- 输出结果是1 3 5 7 9
for a=1,10,2 do
print(a)
end
-- 泛型for循环
--[[
输出结果:
1 a
2 b
3 c
--]]
arr={"a","b","c"}
for i,v in ipairs(arr)
do print(i,v)
end
-- 遍历数组的另一种方法
for i=1,#arr
do
print(arr[i])
end
4_数据类型转换
-- 注意大小写
local num=1
print(type(tostring(num))) --string
local str="10"
print(type(tonumber(str))) --number
5_函数
[local]function fun(a,b,c,d)
return a+1,b+1,c+1
end
r1,r2=fun(1,2,3)
print(r1,r2)
6_table
table 是 Lua 的一种数据结构用来帮助我们创建不同的数据类型,如:数字、字典等。 Lua table 使用关联型数组,你可以用任意类型的值来作数组的索引,但这个值不能是 nil。
Lua table 是不固定大小的,你可以根据自己需要进行扩容。 Lua 也是通过 table 来解决模块(module)、包(package)和对象(Object)的。 例如 string.format 表示使用"format"来索引 table string。
区分table和数组:table没有1/2/3这样的下标(你可以人为的设置1/2/3作为索引);table必须为空,然后用“索引-值”的方式添加数据。以下例子有助理解:
7_模块与包
注意引包如果不是当前路径要加路径,多级目录之间用.隔开。
也可以指定引包的位置:package.path = ‘/usr/local/openresty/nginx/test_lua/abc/?.lua’