Lua语法入门

3.1 初识Lua

Lua是一种轻量级的脚本语言,它使用标准C语言编写,并以源代码形式开放。它的设计目标是嵌入到应用程序中,为应用程序提供灵活的扩展和定制功能。您可以在官方网站https://www.lua.org/上了解更多关于Lua的信息。
Lua经常被嵌入到C语言开发的程序中,例如游戏开发和游戏插件等。由于Nginx本身是用C语言开发的,因此也允许使用Lua进行扩展。

3.1 HelloWorld

CentOS 7默认已经安装了Lua语言环境,因此您可以直接运行Lua代码。

  1. 在Linux虚拟机的任意目录下,创建一个名为hello.lua的文件。
  2. 在文件中添加以下内容:
 print("Hello World!")
  1. 运行以下命令来执行Lua代码:
lua hello.lua

您应该会在控制台上看到输出结果为Hello World!

3.2 变量和循环

学习任何编程语言都离不开变量和循环。在Lua中,变量的声明无需指定数据类型,而是使用local关键字来声明局部变量。

3.2.1 Lua的数据类型

Lua支持常见的数据类型,包括:

  • nil:表示无效值或空值。
  • boolean:表示布尔值,可以是truefalse
  • number:表示数字,可以是整数或浮点数。
  • string:表示字符串,可以使用单引号或双引号。
  • table:表示表,可以用来表示数组、字典等复杂数据结构。
  • function:表示函数。
  • userdata:表示用户自定义数据类型。
  • thread:表示独立执行的线程。
  • coroutine:表示协程。
    您可以使用type()函数来判断变量的数据类型。

3.2.2 声明变量

在Lua中,变量的声明使用local关键字,无需指定数据类型。以下是一些示例:

-- 声明字符串
local str = 'hello'
-- 字符串拼接
local str2 = 'hello' .. 'world'
-- 声明数字
local num = 21
-- 声明布尔类型
local flag = true

Lua中的表(table)类型既可以作为数组,也可以作为字典(类似于Java的map)来使用。数组是表的一种特殊形式,其中键(key)是数组的索引。

-- 声明数组
local arr = {'java', 'python', 'lua'}
-- 声明字典
local map = {name = 'Jack', age = 21}
在Lua中,数组的索引从1开始,可以使用索引来访问数组元素:
lua
-- 访问数组元素
print(arr[1])
字典可以通过键来访问:
lua
-- 访问字典元素
print(map['name'])
print(map.name)

3.2.3 循环

在Lua中,我们可以使用for循环来遍历表。不过,数组和普通表的遍历方式略有不同。
遍历数组:

-- 声明数组
local arr = {'java', 'python', 'lua'}
-- 遍历数组
for index, value in ipairs(arr) do
    print(index, value)
end
遍历普通表:
lua
-- 声明表
local map = {name = 'Jack', age = 21}
-- 遍历表
for key, value in pairs(map) do
    print(key, value)
end

3.3 条件控制和函数

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

3.3.1 函数

在Lua中,函数的定义语法如下:

function 函数名(参数1, 参数2, ..., 参数n)
    -- 函数体
    return 返回值
end

例如,定义一个函数来打印数组:

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

3.3.2 条件控制

和Java一样,Lua也支持条件控制语句,例如ifelse

if 布尔表达式 then
    -- 当布尔表达式为true时执行的代码块
else
    -- 当布尔表达式为false时执行的代码块
end

与Java不同的是,Lua中的布尔表达式使用英文单词表示逻辑运算符:

  • and:逻辑与
  • or:逻辑或
  • not:逻辑非
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xD85a7uI-1691285483911)(assets/image-20210821092657918.png)]

3.3.3 示例

假设我们有一个需求:定义一个函数,可以打印表(数组或字典),如果参数为nil,则打印错误信息。

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

以上是Lua语法的入门介绍,希望对您有帮助。您可以继续深入学习Lua,掌握更多高级特性和用法。
请注意,这只是一个示例,您可以根据自己的需要进行修改和补充。希望这对您有所帮助!

你可能感兴趣的:(redis,lua,开发语言,redix,nginx,java)