gpt4 book ai didi

lua - 跨 Lua 状态复制全局表

转载 作者:行者123 更新时间:2023-12-04 21:17:36 28 4
gpt4 key购买 nike

我有一个全局表,我想在两个不同的 Lua 状态之间保持同步。根据我所阅读和理解的内容,唯一的方法似乎是,在我的 C 后端,在状态之间进行表的深层复制(如果表已被修改)。有没有更好的办法 ?
另外,我看到了一些用于表深层复制的 Lua 片段,但不是在 C 中,是否有任何库[在 C] 中执行此操作?

附言我不是在找 lua_thread基于解决方案(我已经在使用它)

P.P.S Lua Lanes 似乎很接近,但是 IMO,似乎太多了,因为我只想同步 1 个表!

最佳答案

请注意,如果您要写入的表中已存在该键,则 __newindex 将不起作用。

另一种方法是保持表格为空,以便它永远不会有任何实际内容。您可以将所有实际数据保存在 C 中,在这种情况下,两种状态都不需要填充表,而您的元表可以用作任何线程中数据的 View 。这样做的好处是不需要任何一方的数据副本,因为数据将根据要求提供。

如果需要,自定义 __pairs 函数可以迭代您的内部数据,再加上一个 __index 函数来查看数据,您就可以离开了。

关于lua - 跨 Lua 状态复制全局表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19232246/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com