Lua语法

Lua语法

Nginx编程需要用到Lua语言,因此我们必须先入门Lua的基本语法。

Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。官网:https://www.lua.org/

1变量和循环

1.1数据类型

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

可以使用type()函数来判断一个变量的数据类型

> print(type("Hello world"))
string
> print(type(10.4*3))
number

1.2声明变量

lua声明变量时无需指定数据类型,与JavaScript类似,而是使用local来声明变量为局部变量

Lua中的table类型既可以作为数组,又可以作为Java中的map来使用。数组就是特殊的table,key是数组下标而已:

-- 声明字符串,可以单引号或者双引号
local str='hello'
-- 字符串拼接可以使用..
local str2='hello'.."world"
-- 声明数字
local num=666
-- 声明布尔类型
local flag=true
-- 声明数组
local arr={'java','python','lua'}
-- 声明table,类似java中的map
local map={name='cxk',age=114514}

lua中的数组下标从1开始,访问时与java类似

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

1.3循环

对数组和table可以使用for循环进行遍历

  • 遍历数组
-- 声明数组key为索引的table
local arr={'java','python','lua'}
--遍历数组
for index,value in ipairs(arr) do
    print(index,value)
end
  • 遍历普通table
-- 声明table
local map={name='jack',age=21}
-- 遍历table
for key,value in pairs(map) do
    print(key,value)
end

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2函数与条件控制

2.1函数

定义函数的语法:

function 函数名(argument1,argument2...,argumentn)
    函数体
    return 返回值
end

例如:定义一个函数用来遍历打印数组

function printArr(arr)
    for i v in ipairs(arr) do
        print(i,v)
    end
end

2.2条件控制

类似Java的条件控制,例如if、else语法:

if(布尔表达式)
then
   --[ 布尔表达式为 true 时执行该语句块 --]
else
   --[ 布尔表达式为 false 时执行该语句块 --]
end

与java不同,布尔表达式中的逻辑运算是基于英文单词:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 自定义一个函数,可以打印table,当参数为nil时,打印错误信息
function printArr(arr)
    if not arr then
        print('数组不能为空!')
    end
    for index, value in ipairs(arr) do
        print(value)
    end
end

(arr)
if not arr then
print(‘数组不能为空!’)
end
for index, value in ipairs(arr) do
print(value)
end
end


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值