夕除头像
关注

redis--简单Lua

一、Lua 简介

Lua 是轻量、C 语言编写的嵌入式脚本语言,主打嵌入到其他程序,用来扩展功能,Redis 中大量用 Lua 脚本保证命令原子性。

二、基础数据类型

表格

类型说明
nil空值,相当于 false,未定义变量就是 nil
boolean布尔:true / false
number双精度浮点数(整数、小数都存这个类型)
string字符串,单引号 / 双引号包裹
function函数,可以当作变量传递
table最重要! 关联数组,既是数组又是 Map;数组下标从 1 开始;用{}创建空表

变量:弱类型,不用声明类型,local代表局部变量(推荐,减少全局污染)

local str = 'hello'
local num = 21
local flag = true
-- 数组table
local arr = {'java','python','lua'}
-- Map结构table
local map = {name='Jack',age=21}
-- 访问
print(arr[1])        -- java
print(map.name)      -- Jack
print(map['name'])   -- Jack

三、逻辑运算符(和 Java 不一样!用英文单词)

表格

运算符规则
and逻辑与:A 为假返回 A;A 为真返回 B
or逻辑或:A 为真返回 A;A 为假返回 B
not逻辑非,取反

小特点:nil和false视为假;其余所有值(0、空字符串)都是 true

四、条件控制 if

if(布尔表达式) then
    -- 条件true执行
else
    -- 条件false执行
end

多分支:elseif(连写,没有空格)

local age = 20
if age < 18 then
    print("未成年")
elseif age <60 then
    print("成年人")
else
    print("老人")
end

五、循环 for

ipairs 和 pairs 区别(面试高频)

  1. ipairs:只遍历连续数字索引,从 1 开始,遇到 nil 就停止,适合数组
local arr = {'java','python','lua'}
for index,value in ipairs(arr) do
    print(index,value)
end
  1. pairs:遍历 table 全部 key,包括字符串 key、不连续数字 key,适合Map 结构 table
local map = {name='Jack',age=21}
for key,value in pairs(map) do
    print(key,value)
end

六、函数定义

语法:

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

示例:打印数组

function printArr(arr)
    for index, value in ipairs(arr) do
        print(value)
    end
end
  • Lua 支持多返回值
  • 函数是一等公民,可以赋值给变量

七、HelloWorld 运行(Linux)

# 创建文件
touch hello.lua
# 文件内写入
print("Hello World!")
# 执行脚本
lua hello.lua

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/2503_93626619/article/details/167126089

文章来源转载

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--