呼延含玉 发表于 2025-6-10 02:38:22

Redis基础知识(学习笔记21--Lua 脚本语言2)

4.2 迭代器

Lua提供了两个迭代器pairs(table) 与 ipairs(table)。这两个迭代器通常会应用于泛型for循环中,用于遍历指定的table。这两个迭代器的不同是:

[*]ipairs(table):仅会迭代指定table中的数组元素。
[*]pairs(table) :会迭代整个table元素,无论是数组元素,还是key-value。
4.3 模块

模块是Lua中特有的一种数据结构。从 Lua 5.1 开始,Lua加入了标准的模块管理机制,可以把一些公用的代码放在一个文件里,以 API 接口的形式在其他地方调用,有利于代码的重用和降低代码耦合度。
模块主要由 table 组成。在 table 中 添加相应的变量、函数,最后文件返回该 table 即可。如果其它文件中需要使用该模块,只需通过 require 将该模块导入即可。
4.4 元表与元方法

元表,即 Lua 中普通 table 的元数据表,而元方法则是元表中定义的普通表的默认行为。 Lua 中的每个普通 table 都为其定义一个元表,用于扩展该普通 table 的行为功能。例如,对于 table 与数值相加的行为, Lua 中是没有定义的,但用户可通过 为其指定元表来扩展这种行为;再如,用户访问不存在的 table 元素, Lua 默认返回的是 nil,但用户可能并不知道发生了什么。此时可以通过为该 table 指定元素来扩展该行为:给用户提示信息,并返回用户指定的值。
(1)重要函数

元表中有两个重要函数:

[*]setmetatable(table,metatable)::将metatable指定为普通table的元表。
[*]getmetatable(table):获取指定普通表 table 的元表。
(2)__index 元方法

当用户在对 table 进行读取访问时,如果访问的数组索引或key 不存在,那么系统就会自动调用元表的 __index 元方法。该重写的方法可以是一个函数,也可以是另一个表。如果重写的__index 元方法是函数,且有返回值,则直接返回;如果没有返回值,则返回nul。
(3)__newindex元方法

当用户为 table 中一个不存在的索引或key赋值时,就会自动调用元表的__newindex 元方法。该重写的方法可以是一个函数,也可以是另一个表。如果重写的__newindex元方法是函数,且有返回值,则直接返回;如果没有,则返回nil。
(4)运算符元方法


如果要为一个表扩展加号(+)、减号(-)、等于(==)、小于(

烯八 发表于 2025-11-8 12:59:02

很好很强大我过来先占个楼 待编辑

掳诚 发表于 2025-12-16 00:24:43

感谢分享,学习下。

谭皎洁 发表于 2025-12-17 19:19:02

感谢分享

崔瑜然 发表于 2026-1-1 15:48:27

感谢分享

饨篦 发表于 2026-1-4 11:00:24

分享、互助 让互联网精神温暖你我

时思美 发表于 2026-1-7 09:00:04

新版吗?好像是停更了吧。

印萍 发表于 2026-1-10 00:52:39

感谢分享,学习下。

颐港 发表于 2026-1-17 17:30:25

新版吗?好像是停更了吧。

志灿隐 发表于 2026-1-17 19:57:45

感谢分享,下载保存了,貌似很强大

萨瑞饨 发表于 2026-1-18 22:23:01

新版吗?好像是停更了吧。

村亢 发表于 2026-1-20 13:33:06

不错,里面软件多更新就更好了

全叶农 发表于 2026-1-20 17:02:58

谢谢分享,试用一下

秦晓曼 发表于 2026-1-21 15:46:46

新版吗?好像是停更了吧。

汤流婉 发表于 2026-1-22 13:47:14

很好很强大我过来先占个楼 待编辑

届表 发表于 2026-1-25 07:52:01

东西不错很实用谢谢分享

创蟀征 发表于 2026-1-28 09:11:28

前排留名,哈哈哈

骆贵 发表于 2026-2-3 08:44:32

感谢分享,下载保存了,貌似很强大

啦汇 发表于 2026-2-5 08:32:24

感谢分享,下载保存了,貌似很强大

章绮云 发表于 2026-2-6 12:16:43

收藏一下   不知道什么时候能用到
页: [1] 2
查看完整版本: Redis基础知识(学习笔记21--Lua 脚本语言2)