lua __pairs 的实际实现是什么?

2024-03-18

有谁知道 lua 5.2 的实际实现吗?元方法__pairs?换句话说,我如何实施__pairs作为元表中的元方法,因此它的工作原理与pairs()?

我需要覆盖__pairs并想跳过我在表中添加的一些虚拟变量。


下面将使用元表元来显式提供pairs默认行为:

function meta.__pairs(t)
  return next, t, nil
end

现在,为了跳过特定元素,我们必须替换返回的next:

function meta.__pairs(t)
  return function(t, k)
    local v
    repeat
      k, v = next(t, k)
    until k == nil or theseok(t, k, v)
    return k, v
  end, t, nil
end

以供参考:Lua 5.2手册,成对 http://www.lua.org/manual/5.2/manual.html#pdf-pairs

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

lua __pairs 的实际实现是什么? 的相关文章

  • 如果模式匹配,则打印 lua 表中的值

    好吧 我最近刚接触 lua 发现自己陷入了以下困境 我有函数peripheral getNames 这是一个自定义函数 它将返回一个具有结构 key value 的表 而 key 始终是一个数字 从 1 开始 value 将是该函数找到的内
  • Luarocks 无法编译对象

    我对使用 luarocks 之类的东西来安装库还很陌生 并且我遇到了一个问题 我不确定在安装 Lapis 的依赖项时如何修复 如您所见 我没有为 Lapis 安装任何依赖项 我假设当我尝试下载 Lapis 时它们会自动安装 我为此使用常规命
  • Lua 中的“加载”有什么作用?

    我试图解决我的理解问题loadLua 脚本中的函数 但没有该命令的任何示例或指南 它在他自己的 Lua 网站上讲述https www lua org manual 5 2 manual html pdf load https www lua
  • lua检查多个值是否相等

    我喜欢用 Roblox 制作游戏 并用 lua 编写代码 在编写游戏时 我发现自己经常问一个值是否等于另一个值 这可能会产生很长的代码行 并且可能非常重复 例如 如果 x ClassName 衬衫 或x ClassName 附件 或x Cl
  • 错误 main.lua:23:尝试索引 upvalue 'Menu' (布尔值)

    我正在尝试用 lua 和 love2d 制作一个主菜单 这是我第一次这样做 遗憾的是没有关于此事的教程 所以我自己尝试了一下 我一直遇到这个错误 我不知道如何解决它 请帮助 完整错误消息 错误main lua 23 尝试索引upvalue
  • 为什么这个 Lua 优化 hack 会提高性能?

    我正在寻找一个描述提高 Lua 性能的各种技术的文档 http www lua org gems sample pdf脚本代码 我很震惊竟然需要这样的技巧 虽然我引用的是 Lua 但我在 Javascript 中也见过类似的 hack 为什
  • 使用 EVAL、SCAN 和 DEL 的 Redis 通配符删除脚本返回“非确定性命令后不允许写入命令”

    因此 我正在寻求构建一个 lua 脚本 该脚本使用 SCAN 根据模式查找键并删除它们 原子地 我首先准备了以下脚本 local keys local done false local cursor 0 repeat local resul
  • Lua 如何创建可用于变量的自定义函数?

    对于像 io close 这样的方法 你可以像这样使用它 file close 有没有办法创建一个像这样工作的自定义函数 您可以在变量上调用它 对我来说 我尝试使用它通过使用 string find 查找空格来将参数与文本文件分开 所以在文
  • 循环直到在表中找到 2 个特定值?

    我试图找到一种更聪明的方法来解决这个问题 这是与游戏相关的代码的摘录 它循环遍历每个背包的每个插槽 直到找到铲子和绳子 local continue local foundShovel foundRope for i 0 Container
  • C 的哪些部分最可移植?

    我最近读到了 Lua 联合创始人 Luiz H de Figueredo 和 Roberto Ierusalimschy 的采访 他们讨论了 Lua 的设计和实现 至少可以说这是非常有趣的 然而 讨论的一部分让我想起了一些事情 Robert
  • Redis 排序集和解决关系

    我正在使用 Redis 排序集来存储我正在处理的项目的排名 我们没有预料到 我们想要如何处理关系 Redis 按字典顺序对具有相同分数的条目进行排序 但我们想要做的是对具有相同分数的所有条目给予相同的排名 例如在以下情况 redis 127
  • 用于嵌入式服务器的 Web 技术

    我最近开始了一个针对嵌入式设备的新 Web 开发项目 并希望征求一些有关使用技术的建议 该设备将提供 HTML 页面 其中包括用于从 JSON 服务器检索数据的 AJAX 代码 我们暂时使用 Cherokee 作为 Web 服务器 但我们并
  • Lua-迭代嵌套表

    我已经学习 Lua 几个星期了 这一次又一次成为我的症结所在 我尝试阅读有关该主题的帖子和书籍 我使用 Lua 查询软件监控系统 Nimsoft 我的数据以表格形式返回给我 我不会发布整个输出 但这里有一个我认为可以描述结构的片段 表参考是
  • Kong - 验证上游 ssl(ssl_proxy 打开)

    我已经成功为 API 安装了 kong 网关 该 API 通过上游负载平衡到多个目标 应用程序服务器 现在 我有一个我的应用程序服务器的自签名证书 kong 和目标之间的 ssl 握手应该失败 我推断 kong 不验证上游证书 经过一些研究
  • 尝试将 nil 与数字堆栈回溯进行比较?

    我正在通过以下链接玩 Lua https www lua org pil 4 2 html https www lua org pil 4 2 html并对某一点感到困惑 Lua 5 2 4 Copyright C 1994 2015 Lu
  • Lua中如何获取表中的最大整数?

    Lua中如何获取表中的最大整数 在Lua 5 1及更早版本中 你可以使用 math max unpack 1 2 3 4 5 这受到Lua堆栈大小的限制 在 PUC Lua 5 1 上 该值的最大值可达 ca 8000 个数字 如果堆栈空闲
  • 在lua中组合两个函数

    我刚开始学习lua 所以我的要求可能是不可能的 现在 我有一个接受函数的方法 function adjust focused window fn local win window focusedwindow local winframe w
  • Lua 从 5.1 更新 - LUA_GLOBALSINDEX 问题

    我最近将旧的 Lua 5 1 项目更新到了该库的最新版本 但遇到了问题LUA GLOBALSINDEX 它变得不确定 我只用过它lua getfield函数 像这样 void luastartgame void if startgamefu
  • VB6 - Lua 集成

    我想知道是否有人有任何集成 Lua 和 VB6 的技巧 我正在运行一个小型在线角色扮演游戏 添加一些脚本会很棒 嗯 这是可行的 我曾经为 Lua 5 0 2 做过 但找不到文件 在您拥有的选项中 您可以 将 Lua 封装在公开 Lua AP
  • 在Lua中获取前一天的日期

    谁能告诉我如何使用 Lua 获取 YYYY MM DD 格式的前一天日期 即 一个片段 它将返回运行当天的前一天的日期 Try print os date Y m d os time 24 60 60 严格来说 这只能保证在 POSIX 系

随机推荐

  • Django password_reset 支持 html 电子邮件模板吗?

    在我看来 django 仅支持开箱即用的密码重置电子邮件的纯文本消息 我如何使用 html 模板来实现此目的 以下是如何进行覆盖 urls py url r user password reset YOUR APP views passwo
  • node.js - 代码保护?

    我想在下一个项目中使用node js 但我的老板不喜欢我们的竞争对手可以阅读源代码 有没有办法保护 JavaScript 代码 您可以使用 Node 的 NativeExtension 来完成此操作 你会有一个boostrap js为 js
  • 我如何能够在 C++ 中声明一个在运行时确定的可变长度数组?

    请检查这段代码 它编译并运行得非常好 问题是 当我开始学习 c turbo c 时 我从来无法将任何类型的数组声明为 datatype var variable set at runtime 我想当然地认为这在最新的 gcc 编译器中是不可
  • 如何根据优先级和关联性来解析(复杂)声明?

    符号 如 等 两者都使用表达式 and 声明 这是两个不同的概念 In 表达式 符号为运营商 为此我们有一个明确定义的优先级和结合性表 当表达比较复杂 我们可以利用这张表进行分解分析 例如 a b c Question In 声明 这些符号
  • 使用 Kinesis Analytics 构建实时会话

    是否有某个地方的示例 或者有人可以解释如何使用 Kinesis Analytics 构建实时会话 即会话化 这里提到这可能 https aws amazon com blogs aws amazon kinesis analytics pr
  • Oracle XMLQuery 正在破坏命名空间

    甲骨文版本11 2 下面是我在 XMLType 列上运行的 XMLQuery 的简化版本 当我运行查询时 它只是解析并重新创建存储的 XML tsxm 命名空间 不等于默认命名空间 被改变 该查询不执行任何操作 并且可以轻松重写 但真正的
  • 如何在 pandas df.query() 中使用循环变量

    我该如何解决以下问题df query行停止获取错误消息 name z is not defined 我有 3 列数据 想要绘制 3D 多边形 我运行一个循环来配对 X Y 其中我尝试使用循环变量 z 筛选一列 zs 20 30 40 50
  • 如何向 Jackson 全局添加自定义序列化器并默认使用

    假设我想序列化Boolean into Number 默认情况下 我知道我可以逐个领域地做到 JsonFormat shape Shape NUMBER private Boolean success 但是我可以 注册 我的自定义序列化器
  • 如何使用 WinRT 获取文件?

    我想要的是 从 AppData 获取要使用的 xml 我编码的内容 StorageFolder localFolder Windows Storage ApplicationData Current LocalFolder StorageF
  • 使用 R 在一张图中绘制光谱数据

    我有多个数据框 其中第一列 最后填充 NA 是波数 其他列是多次观测的特定波数的变量 是否有可能以我的第一列保存 x 轴变量而另一列绘制为具有各自 y 值的大图的方式绘制列 我已经尝试过 matplot 结果是 数字 而不是点 matplo
  • Microsoft Graph 和 Azure Ad 用户身份验证

    我在 Azure 广告中注册了一个应用程序 当我使用以下详细信息执行 ADAL 时 我会获得一个授权令牌以与 microsoft graph api 一起使用 username email protected cdn cgi l email
  • 如何在 Laravel 5.2 中以 JSON 格式返回 403 响应?

    我正在尝试使用 Laravel 5 2 开发 RESTful API 我偶然发现如何以 JSON 格式返回失败的授权 目前 它抛出 403 页面错误而不是 JSON 控制器 TenantController php class Tenant
  • 与 fork() 共享堆内存

    我正在努力用 C 语言实现一个数据库服务器 它将处理来自多个客户端的请求 我在用fork 处理单个客户端的连接 服务器将数据存储在堆中 堆由指向动态分配记录的哈希表的根指针组成 记录是具有指向各种数据类型的指针的结构 我希望进程能够共享这些
  • 使用 Pyside + Python 中的类进行样式设计

    如何使用类更好地设计该应用程序的样式 而不是为每个看起来相同的标签重新定义相同的样式 更改样式变得很痛苦 因为我必须仔细检查每个看起来相同的标签并粘贴代码以进行匹配 usr bin python coding utf 8 import sy
  • Cordova CLI,使用 Git,并保存插件/平台

    我正在尝试找出如何将一些 Cordova git 最佳实践 与我认为的现实相协调 我希望有人能为我阐明这一点 如果我理解正确的话 当前的 最佳实践 是将这些目录添加到我的 gitignore 来自 使用 Cordova CLI 进行开发 一
  • 有人可以解释一下 xml:base 属性在 XHTML5 中的用途吗?

    我想知道 xml base 属性的作用是什么以及它在 XHTML5 中的值是什么 xml base 属性有什么限制吗 文档为xml base可以被找寻到here http www w3 org TR xmlbase syntax 它允许重新
  • 在 Java 中将列表迭代器传递给多个线程

    我有一个包含大约 200K 元素的列表 我是否能够将此列表的迭代器传递给多个线程 并让它们迭代整个列表 而没有任何一个线程访问相同的元素 这就是我此刻的想法 Main public static void main String args
  • Statsmodels Poisson glm 与 R 不同

    我正在尝试根据 R 中提供的一些代码来拟合一些模型 空间交互模型 我已经能够在 python 框架中使用 statsmodels 使一些代码正常工作 但其中一些代码根本不匹配 我相信我的 R 和 Python 代码应该给出相同的结果 有人看
  • 非模板化成员函数的enable_if用法[重复]

    这个问题在这里已经有答案了 C 程序设计语言 第四版 一书 第28 4章 第796页 解释了enable if并给出了使operator gt 成为条件定义的示例 书中的例子只是一个代码片段 我将其完成为程序如下 include
  • lua __pairs 的实际实现是什么?

    有谁知道 lua 5 2 的实际实现吗 元方法 pairs 换句话说 我如何实施 pairs作为元表中的元方法 因此它的工作原理与pairs 我需要覆盖 pairs并想跳过我在表中添加的一些虚拟变量 下面将使用元表元来显式提供pairs默认