问题标签 [metatable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
lua - 打印所有元表内容
我有表:
我有肮脏但有效的代码:
它的电报机器人。当按名称、日期和时间询问农场时 - 没关系。
我的麻烦就在 else 语句附近。我想向机器人询问农场和日期。它应该返回类似“在 16-6-2014,在农场“knk”将是 2 个农场。在 17 - 2 个代理。在 18 - 3 个代理”之类的列表
简单的 table.concat 对我不起作用。
c - C 中的嵌套 Lua 元表
在 3D 场景中,我有一个想要使用 Lua 移动的位置的对象。
例如。box.position.x = 10
box 有一个元表(“Object”),因此有一个位置(“Vec”)。对象具有__newindex
并__index
设置为分别调用 C 函数NewIndexObject
和IndexObject
。与 Vec (NewIndexVec
和IndexVec
) 相同。
对象有一个 id,因此可以在存储在场景中的列表中识别它,当box.position
访问时一切正常,调用 C 函数 IndexObject,我可以从堆栈中提取 id,它只是在box.position.x = 10
执行“NewIndexVec”时被调用并且堆栈上唯一的东西是 {table, x, 10} 所以没有办法识别对象来改变它的 x 位置。
有没有将价值观推到当地国家?帮助!
更新:感谢您快速回复我,下面我已经尽可能地提炼了代码。如果您运行此代码,它似乎可以工作,但我有评论我被卡住了,它只是获取数组中的第一个对象,但我需要通过它的 ID 选择它,提前致谢
lua - 元表问题
所以我知道,如果表的元表不包含我引用的变量,lua 会查找它,但是当我尝试设置表中尚不存在的变量时,它将它设置在元表中,这似乎是错误的.
这是我的意思的一个例子
在此代码中,它将替换 metatables 变量,而不是将其设置在我引用的表中。
但是,此代码不会发生这种情况
使用元表和嵌套表时是否需要做更多工作?或者有没有办法解决这个问题?
lua - Lua 自定义运算符
我正在尝试创建一个运算符'!返回打印功能。我收到以下错误:
我的代码如下:
看来这应该可行,因为http://lua-users.org/wiki/CustomOperators上的技术 #3使用几乎完全相同的方法。
c - LuaJit - 从模块/包中获取元表并将其分配给用户数据
假设我有一个自定义结构的元表,vector2_t
它位于模块mymod 中,如下所示:
在另一个脚本中,我有这个回调/事件侦听器函数,它必须接收 avector2_t
作为它的参数:
现在,我必须从 C/C++ 调用该回调/事件侦听器函数并将其实例vector2_t
(连同它的关联元表)作为参数传递给该函数。
我有点迷茫,我不知道如何将它的实例vector2_t
作为函数参数传递。很抱歉发布了这么多代码,但我想确保我解释正确。
lua - Lua表长度函数覆盖不起作用
如何更改#
Lua 中表的长度运算符 (),手册建议在元表中分配__len
函数,然后将该元表分配给我要覆盖的表,但这不能按预期工作?我没有选择在 C 端覆盖它。
lua - 什么是 newproxy,它有什么用处?
昨天我在玩 Lua,偶然发现了“newproxy”功能。
http://wiki.roblox.com/index.php?title=Function_dump/Basic_functions#newproxy
我有点理解它,但我不确定它有什么用处。我知道它会创建一个附加了元表的空白 userdata 对象(如果参数为真)。
newproxy 怎么有用?这是我在弄乱它时所做的一个示例:
lua - lua metatable help(在游戏中生成怪物)
我在使用元表为游戏创建新怪物时遇到问题,我可以创建一个精确的副本,但我无法生成新的老鼠或蜥蜴,例如使用新的 id。
这会在变量 testrat 下创建一个新老鼠,控制台会打印“a rat”和“1”。我不知道如何在创建老鼠时为其指定新的 ID 号。任何帮助将不胜感激,元表让我疯狂!
lua - 为什么这会导致 C 堆栈溢出?
我知道我可以通过使用来解决这个问题rawset
,但我只是想知道为什么下面的代码会导致 C 堆栈溢出。
lua - 如何解决此解包问题?
我正在创建一个 Array 类,为表添加更多使用。我有一个元方法,可以让我组合两个表,例如:
Array(5) .. Array(6, 10) 应该给你 {5, 6, 10}
我知道我可以使用两个循环来做到这一点,但我正在努力使我的代码尽可能干净和高效。我遇到了解包问题。我正在尝试连接两个表,但它不包括所有值。这是我的代码和输出:
OUTPUT: 5, 6, 9 (I want it to be "5, 12, 13, 6, 9")