问题标签 [lua-userdata]
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 - Lua:在元表中扩展用户数据
我正在尝试为一些受保护的员工 userData 找到合适的解决方案,我想用其他条目/数据进行扩展以便于访问
这是我正在尝试做的一个粗略示例:
这可行,但我不喜欢我必须将所有自定义逻辑放在索引函数中
以及我如何访问自定义数据:
理想情况下,我想将自定义逻辑放在一个单独的函数中,如下例所示:
这不起作用,也不能传递参数(返回 nil)...
我怎么解决这个问题?有更好的解决方案吗?
c++ - What happens if I push userdata twice using the same key?
I would like to know what happens if I push the lightuserdata into the registry twice using the same key.
My Code:
Would the previously pushed pointer (x
) be replaced with the new one (y
)?
ADDED: And is there a way to check the list of keys that are currently registered?
lua - Lua 用户数据不可用
我有一些相对简单的 Lua 代码,它链接到一些 C 和一些 Lua。
这正如我所期望的那样工作。当我按空格键时,屏幕上的消息会发生变化,直到它运行到数组的末尾。这些zenith.
方法都是用 C 实现的,使用 Userdata 来存储颜色(我有多种构造颜色的方法(rgba、hsl、命名,所以传递它而不使用数字参数是有意义的)
然后我尝试改变结构,如下所示:
唯一的变化是我已将颜色(即用户数据)提取到最外层范围。我希望这能够继续工作,但没有不断分配/收集颜色。相反,我只是得到一个黑屏。有小费吗?我的颜色是否过早地被垃圾收集,因为它们仅在关闭时可用?我还错过了什么其他魔法吗?颜色和颜色之间的唯一区别messages
是它们是用户数据。
c++ - 如何索引转换后的用户数据值?
我尝试使用将 C++ 类转换为 void 指针lua_touserdata()
,然后使用lua_pushlightuserdata()
.
但是,一旦进行转换,我就无法在类中索引变量。
这是我的测试代码:
MyBindings.h
MyBindings.i
main.cpp
我得到的结果:
[string "local vec = my.Vec2(3, 4)..."]:3: 尝试索引用户数据值 (local 'p')
我期望的结果:
3
我应该怎么做才能得到我期望的结果?
c++ - 如何在 C++ 中将用户数据从一个 Lua 块传递到另一个块
我试图userdata
从 C++ 中的 Lua 脚本(chunk A
)获取(通过我的示例中的函数返回的变量),然后,稍后将其从 C++(通过我的示例中的函数参数)传递userdata
回 Lua 脚本(chunk B
),所以userdata
可以chunk B
像在chunk A
.
MyBindings.h
MyBindings.i
main.cpp
我得到的结果:
[string "local vec2 = my.Vec2(3, 4)..."]:6: 尝试索引用户数据值 (local 'p')
我期望的结果:
3
是否可以从中获取userdata
然后chunk A
将其传递给chunk B
以便可以像以前一样使用它chunk A
?
c++ - 使用 luaL_ref 获取对表中用户数据的引用?
首先,我很抱歉没有上传完整的代码。
我正在尝试转换userdata
为 apointer
以便可以使用lua_rawgeti()
.
如果你看到outletRet()
function,它会检查返回值的类型,如果是 a userdata
,它会通过调用将指针传递给其他 lua 块outlet_pointer()
,它似乎工作正常。
如果userdata
在 a 内table
,outletTable()
则调用函数。如果其中一个元素是 auserdata
它也会转换userdata
为 apointer
然后通过调用将其传递给其他块outlet_pointer()
。
但是,当luaL_ref(L, LUA_REGISTRYINDEX)
被调用时,它似乎获得了对整体的引用,table
而不仅仅是userdata
在其中。
我怎样才能获得对userdata
而不是整体的参考table
?
go - 将 Go Struct 实例转换为 Lua 表
我有一个 Go Struct 实例,并希望使用 GopherLua 将该实例传递给 Lua 方法。
我的 Go 代码是这样的:
在我的 Lua 方法中,访问 Animal 参数的属性会尝试索引非表对象时出错。我的 Lua 是这样的:
请问我做错了什么?传递其他类型(字符串,int)的参数可以正常工作。
lua - lua - 检查用户数据是否为零
我尝试使用 lua cjson 解析为以下 json :
它被解析为以下地图:
我试图做类似的事情:
那可能吗?
(userdata(nil) 不是有效的表达式)
lua - 尝试调用用户数据值
所以当玩家触摸它时,我试图让一个部分消失,但它说:Workspace.RedCastle.Grid.Script:1: attempt to call a userdata value
这是我的代码:
我怎样才能解决这个问题?
lua - 在 Wireshark Dissector 中将用户数据转换为十六进制
我现在正在编写 Wireshark Dissector lua 脚本。
如何转换userdata
为十六进制字符串?
我想得到这样的输出0102030405060708000a0b0c0d0e0f10
我可以使用tostring
.
但它省略了长数据。
输出图像
如何在userdata
不省略长数据的情况下转换为十六进制字符串?
环境
- Wireshark 3.2.1