![]() |
1
3
你会用
在我看来,Lua应该对这种类型的扩展给予更多的支持。到目前为止,Lua/C(++)包装系统确实有责任这样做。
在我最近做的一个包装中(作为商业项目的一部分),我做了
Lua可以帮助所有这一切的方法是,如果元表有一个扩展类型信息的标准字段(S.A.
|
![]() |
2
5
您可以始终在元表中存储一个标记字段,该字段具有模块独有的light userdata值。
然后你可以用
通过这种方式,“口味”字段只能接受在范围内具有“绿色口味”符号的模块中的代码可以创建的值,查找字段并测试其值只需要一个表查找,而不需要检索元表本身。注意,变量green_flavor的值并不重要,因为实际上只使用了它的地址。 有了几个不同的口味变量可用作句子值,可以使用_flavor字段来区分几个相关的元表。 所有这些都表明,一个自然的问题是“为什么要这样做?”毕竟,元表可以轻松地包含获得适当行为所需的所有信息。它可以很容易地保存函数和数据,并且可以从C和Lua中检索和调用这些函数。 |
![]() |
3
2
用户数据必须有一个元表,所以抓住它,然后在注册表中查找您想要的名称。如果这两个对象相同,您就找到了要查找的类型。
您可以在C代码中调度此类型,但请允许我建议您改为指定元表的字段。存储在元表中的函数应该执行该操作,但如果不执行,则必须执行
然后在你的C代码中
|
![]() |
4
0
我刚刚查看了
|
![]() |
Daniel Wagner · 如何使用带有管道的luv? 6 月前 |
|
Naruto_333 · Roblox:函数不循环或添加“货币”值 6 月前 |
![]() |
Lukas Raby · 玩Tween后,零件位置被锁定 11 月前 |
![]() |
Noway · 为什么roblox工作室在桌子上走错了路 1 年前 |
![]() |
localhorst · 索引处的铁路超高访问表条目 1 年前 |