多级缓冲-Lua

请添加图片描述
个人名片:

博主酒徒ᝰ.
个人简介沉醉在酒中,借着一股酒劲,去拼搏一个未来。
本篇励志三人行,必有我师焉。

请添加图片描述
本项目基于B站黑马程序员Java《SpringCloud微服务技术栈》,SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

【SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 点击观看


三、Lua语法入门

1. 初识Lua

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

在这里插入图片描述

Lua经常嵌入到C语言开发的程序中,例如游戏开发、游戏插件等。

Nginx本身也是C语言开发,因此也允许基于Lua做拓展。

  1. HelloWorld

CentOS7默认已经安装了Lua语言环境,所以可以直接运行Lua代码。

1)建立文件运行lua
在Linux虚拟机的任意目录下,新建一个hello.lua文件

touch hello.lua

添加下面的内容

print("Hello World")

运行

lua hello.lua

在这里插入图片描述
2)直接运行lua

# 开启lua
lua
# 关闭lua快捷键
CTRL + C

在这里插入图片描述

2. 变量和循环

学习任何语言必然离不开变量,而变量的声明必须先知道数据的类型。

  1. Lua的数据类型

Lua中支持的常见数据类型包括:
在这里插入图片描述

另外,Lua提供了type()函数来判断一个变量的数据类型:
在这里插入图片描述

  1. 声明变量

Lua声明变量的时候无需指定数据类型,而是用local来声明变量为局部变量:

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

Lua中的数组角标是从1开始,访问的时候与Java中类似:

在这里插入图片描述

Lua中的table可以用key来访问:

在这里插入图片描述

  1. 循环

对于table,我们可以利用for循环来遍历。不过数组和普通table遍历略有差异。
修改hello.lua

-- 遍历数组:
local num = {"one", "two", "three"}
for index, value in ipairs(num) do
    print(index, value)
end

print()

-- 遍历普通table
local map = {name = "Jack", age = 21, grade = "99"}
for key, value in pairs(map) do
    print(key, value)
end

执行:

lua hello.lua

在这里插入图片描述

3. 条件控制、函数

Lua中的条件控制和函数声明与Java类似。

  1. 函数

定义函数的语法:

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

例如,定义一个函数,用来打印数组:
继续修改hello.lua

local num = {"one", "two", "three"}

function printArr(arr)
    for index, value in ipairs(arr) do
        print(index, value)
    end
end
printArr(num)

执行:
在这里插入图片描述

  1. 条件控制

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

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

与java不同,布尔表达式中的逻辑运算是基于英文单词:
当然,也可以使用符号,例如:==
在这里插入图片描述

  1. 案例

需求:自定义一个函数,可以打印table,当参数为nil时,打印错误信息

local num = {"one", "two", "three"}

function printArr(arr)
    for index, value in ipairs(arr) do
        print(index, value)
    end
end

function printTable(arr)
    if (arr == nil) then
    -- (arr == nil) 与 not arr 效果相同
        print("错误信息")
    else
        printArr(arr)
    end
end

printTable(nil)
print()
printTable(num)

结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值