访问 Lua 类型元表

2024-04-03

显然 getmetatable 可以访问几种类型的元表:

getmetatable("")
getmetatable({})
getmetatable(newproxy(true))

然而,似乎您无法获取其他类型的元表(除了函数)。似乎无法访问数字、布尔值或 nil 的元表。

我还想知道是否能够访问整个表类型的元表。为了能够做这样的事情:

({}) + ({})

字符串、数字、nil、函数和 lightuserdata 的整个类型都有一个元表。表和完整的用户数据每个实例都有一个元表。

来自文档:

表和完整的用户数据有 单独的元表(尽管 多个表和用户数据可以共享 他们的元表)。所有其他的值 每个类型共享一个元表 类型;也就是说,有一个 元表适用于所有数字,一个适用于所有数字 字符串等字符串等

没有“表类型元表”,就像没有“此字符串的元表”一样

字符串类型默认将 'string' 表作为元表;但您可以使用以下命令设置其他类型的元表debug.setmetatable()函数.字符串等

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

访问 Lua 类型元表 的相关文章

  • docker 单元测试设置

    我想为我的产品设置一个单元测试环境 我有一个基于 Lua 中的 nginx 构建的 Web 应用程序 它使用 mysql 和 redis 我认为 docker 会对此很有帮助 尽管我是 docker 的新手 我的应用程序运行在 centos
  • 如果模式匹配,则打印 lua 表中的值

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

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

    在 Nginx 中proxy pass指令未使用以下命令解析 DNS etc hosts文件 有什么方法可以实现这种可能性 也许利用 Lua 作为最后的手段 如果您有一台带有 systemd 的服务器 您可以使用它附带的名称服务器 syst
  • 寻找 Lua 4.1 alpha

    我正在帮助为一款相当老的游戏 孤岛惊魂 开发多人模式 我想编译lua代码 但游戏使用版本4 1 alpha 我在任何地方都找不到 lua 4 1 alpha tar gz http www lua org work old lua 4 1
  • 错误 main.lua:23:尝试索引 upvalue 'Menu' (布尔值)

    我正在尝试用 lua 和 love2d 制作一个主菜单 这是我第一次这样做 遗憾的是没有关于此事的教程 所以我自己尝试了一下 我一直遇到这个错误 我不知道如何解决它 请帮助 完整错误消息 错误main lua 23 尝试索引upvalue
  • 覆盖 require 后调用 lua_getfield() 时崩溃

    这个问题与 Henri Menke 在这个问题中的回答相关 如何在 C 中获取预加载模块名称 https stackoverflow com questions 51510308 how to get preloaded module na
  • Lua:“拖动”数组中的元素序列

    我正在尝试创建一个函数 将连续数量的元素 拖动 到数组中的新位置 并限制为数组的当前大小 其他项目应该围绕 拖动 的项目晃动 例如 如果我的数组有 7 个元素 并且我想拖动中间的三个 1 2 3 4 5 6 7 lt keys a b C
  • 在 lua 中使用相等运算符比较数字有多安全?

    在我的引擎中 我有一个用于脚本编写的 Lua VM 在脚本中 我写了这样的内容 stage stage 1 if stage 5 then end and objnum tonumber 5 if stage objnum 根据 Lua 来
  • 创建独立的 Lua 可执行文件

    有没有一种简单的方法可以从 Lua 脚本创建独立的 exe 文件 基本上这将涉及链接 Lua 解释器和脚本 我相信这是可能的 PLT 方案允许以相同的方式创建独立的可执行文件 但是到底是如何实现的呢 查看srlua http www tec
  • Lua 和序列化闭包

    我正在尝试序列化和反序列化 Lua 闭包 我的基本理解是下面的工厂应该生成闭包 并且Lua在函数和闭包之间没有太多区别 即没有类型 闭包 gt function ffactory x return function return x end
  • Corona/Box2D 检测与非移动静态物体的碰撞

    出于发帖原因 这是我正在尝试做的事情的简单版本 在屏幕上我有一个简单的圆形对象 它是静态的并且不会移动 然后用户可以拖放一条直线 如果该线穿过该圆圈 我希望触发碰撞事件 看来除非其中一个物体正在移动 否则永远不会检测到碰撞 绘制线条时能否检
  • 如何在多个Lua State(多线程)之间传递数据?

    我在中启动Redis连接池redis lua 通过从 C 调用 我得到了redis lua state 此 Lua 状态全局启动一次 仅在其他线程中启动get从中 当有一个 HTTP 请求 工作线程 时 我需要从redis lua stat
  • Kong - 验证上游 ssl(ssl_proxy 打开)

    我已经成功为 API 安装了 kong 网关 该 API 通过上游负载平衡到多个目标 应用程序服务器 现在 我有一个我的应用程序服务器的自签名证书 kong 和目标之间的 ssl 握手应该失败 我推断 kong 不验证上游证书 经过一些研究
  • 如何在 Lua 中实现 OO?

    Lua 没有内置对 OO 的支持 但它允许您自己构建它 您能否分享一些实现面向对象的方法 请为每个答案写一个例子 如果您有更多示例 请发布另一个答案 我喜欢将 OOP 视为容器 对象 内的数据封装以及可以使用该数据完成的操作子集 还有很多内
  • 确定已编译Lua的编译器版本

    我有一些已编译的 LuaQ 我需要确定用于编译它的确切版本 有什么可能的方法吗 编译的脚本在文件开头有一个标头 4 bytes signature x1bLua 1 byte version 0x51 1 byte format 1 byt
  • 为什么 LuaJIT 这么好?

    编辑 不幸的是 LuaJIT 已从下面链接的比较中删除 This 比较 http shootout alioth debian org u64 which programming languages are fastest php编程语言的
  • 去掉尾随零和小数点

    使用 Lua 我将数字格式化为可变位数并去掉尾随零 小数点 例如 string format precision f value gsub 0 1 gsub 值的类型为数字 正数 负数 整数 小数 所以任务已经解决了 但出于美学 教育和性能
  • 安装Lua套接字库

    要么我太累了 要么我瞎了 我想学习 Lua 网络 因此我必须安装socketlib 所以我可以轻松地要求它 但我不知道我应该 要求 哪些文件 例子说 local socket require socket 但正如我所说 如果我使用 我不知道
  • Lua 将字符串转换为数字 - 取决于语言环境

    刚刚注意到字符串 and tonumber 在 Lua 中是依赖于语言环境的 知道如何在不使用的情况下将字符串转换为数字tonumber 谢谢 例如将字符串 58 5 转换为 58 5 另外 当我尝试将带点的数字传递给函数时 该函数会转换

随机推荐

  • Ant Zip 提取的父目录

    我有几个 zip 文件需要在 Ant 目标中解压缩 所有 zip 文件都位于同一目录中 并且具有相同的内部目录和文件结构 因此 我使用以下代码片段来解压缩目录中的所有 zip 文件 但每个 zip 文件在根目录下不包含父文件夹 因此每个连续
  • Mod_rewrite 已启用但不起作用

    我已经阅读了一段时间 但无法让它发挥作用 mod rewrite 在 Apache 中启用 我已将 AllowOverride 更改为 all 我的 htaccess 看起来像这样 Options FollowSymLinks Rewrit
  • 如何更改datagridview中列的颜色?

    我有一个 DataGridview 并且我将某些列设置为只读以用于数据输入目的 当我这样做时 该列保持正常的白色 尽管它不允许进入 如何将列设置为灰色 我看过很多关于如何为行着色的示例 但没有看到列的示例 如何使只读列显示为灰色 尝试设置默
  • 展平数据框

    我有这个嵌套数据框 test lt structure list id c 13 27 seq structure list 1 c 1997 1997 1997 2007 2 c 2007 2007 2007 2007 2007 2007
  • 如何通过innerText获取元素

    如果我知道文本标签包含哪些内容 如何获取 html 页面中的标签 例如 a SearchingText a 您可以使用 xpath 来完成此任务 var xpath a text SearchingText var matchingElem
  • pytesseract找不到指定的文件

    我的代码很简单 如下所示 import pytesseract from PIL import Image img Image open C temp foo jpg img load i pytesseract image to stri
  • castle IOC - 解决循环引用

    关于我的 MVP 实现的简单问题 目前我有下面的代码 其中演示者和视图都是通过容器解析的 然后演示者调用 View Init 将自己传递给视图 然而 我想知道是否有一种方法可以让容器修复我的循环引用 视图 gt 演示者 演示者 gt 视图
  • Codeigniter 会话不会取消设置

    我在一个社区工作 我想让用户注销 但它不会取消设置用户数据 S 你知道为什么吗 这是我的控制器功能 function logOff this gt session gt flashdata reports Du er logget af r
  • 如何使用 MAMP 在 mac 上安装 phpunit 3.5

    我正在尝试使用 MAMP 在 Mac OS X 上安装 PHPUnit 3 5 我确实通过 MAMP 的 PEAR 安装了 PHPUnit 3 5 这一切都是正确的 phpunit 位于 Applications MAMP bin php5
  • 如何将键值对加载到hive表中?

    以下是我的数据集 Jun name balaji id 101 Mar name kumar id 102 创建的表 create table sample month string name string id int row forma
  • ZeroMQ套接字在什么情况下会丢弃或无法传递消息?

    是否有某种规范或其他解释来描述正常情况 对于每种通信类型 您可以预期在 ZeroMQ 套接字上发送的消息不会被 所有 侦听进程接收 例如 我有一个实验程序 它基本上假设所有订阅者PUB套接字接收在该套接字上发送的所有消息 在初始化握手之后
  • Azure AD B2C 审核日志 - 图形 API - 查询选项不起作用

    我正在尝试检索我们租户的 Azure AD 用户登录审核日志 为此 我使用 Microsoft 的图形 API 1 https graph microsoft com v1 0 auditLogs signIns filter create
  • 使用seaborn白色风格没有显示主要刻度线并且无法恢复

    当我使用seaborn 白色 样式生成绘图时 我看到了主要的勾号labels但我没有看到任何重大的问题marks 使用 将主要刻度线设置得更大 matplotlib inline import seaborn as sns import m
  • java.lang.ClassCastException:org.springframework.security.core.userdetails.User无法转换为model.User

    我在我的应用程序中使用 Spring Security 我需要在我的应用程序的控制器中登录用户详细信息 为此 我正在使用这段代码 User loggedInUser User SecurityContextHolder getContext
  • VPC 中的 AWS Lambda 有时无法访问互联网

    我有部署到 VPC 的 Lambda 此部署有以下配置 专有网络 192 168 0 0 16 公共子网 A 192 168 32 0 20 具有 NAT 网关和到 Internet 网关的路由 0 0 0 0 0 私有子网 A 192 1
  • 不明白 Monitor.Pulse() 的必要性

    根据MSDN http msdn microsoft com en us library ateab679 aspx Monitor Wait 释放对象上的锁并阻塞当前线程 直到它 重新获取锁 然而 我读到的有关 Wait 和 Pulse
  • 如何使用脚本更改 Xcode 11 中的构建设置版本控制?

    由于 Xcode 11 已将版本更改为 MARKETING VERSION 并将构建更改为 CURRENT PROJECT VERSION 构建设置中有新字段 由于以下原因 我如何使用脚本更改此值 xcrun agvtool new ver
  • OpenMP 并行区域中嵌套函数的内部编译器错误

    我尝试调用GSL库的蒙特卡罗积分子程序来进行一些数值计算 因为我的 for 循环相当简单 这意味着不同运行的结果是独立的 所以我预计使用 OpenMP 进行并行化应该非常简单 然而 当我编译它时 它总是显示 内部编译器错误 分段错误 并且什
  • 在 x86_64 linux 中重定位超过 2GB 的程序时出现链接器错误?

    我有一个用户程序 通常编译为有一个入口点0x400460我必须重新定位才能有一个从以下位置开始的入口点2GBLinux 中加载的共享库 例如 linux vdso so 1 gt 0x00007fff109cd000 libc so 6 g
  • 访问 Lua 类型元表

    显然 getmetatable 可以访问几种类型的元表 getmetatable getmetatable getmetatable newproxy true 然而 似乎您无法获取其他类型的元表 除了函数 似乎无法访问数字 布尔值或 ni