【发布时间】:2011-06-16 19:03:48
【问题描述】:
我发现自己需要一个包含 Lua 的 C 项目中的哈希表容器。我想知道是否可以将 Lua 中的哈希表用作通用容器。我查看了ltable.h,所有功能都需要 Lua 状态,并且似乎与 Lua 环境相关,所以我猜如果数据需要独立于 Lua,这是不切实际的。
【问题讨论】:
我发现自己需要一个包含 Lua 的 C 项目中的哈希表容器。我想知道是否可以将 Lua 中的哈希表用作通用容器。我查看了ltable.h,所有功能都需要 Lua 状态,并且似乎与 Lua 环境相关,所以我猜如果数据需要独立于 Lua,这是不切实际的。
【问题讨论】:
这是可能的,最简单的方法就是使用 Lua 的官方 C API。无需深入了解 ltable.h 的内部结构。
【讨论】:
您可以使用 luabind 或 luabridge 来指定 C++ 哈希(例如 stl 的映射)在 Lua 中的表示方式;然后你就可以将它传递给 Lua 引擎。请注意,任何 Lua 的使用都需要传递 Lua 状态,此处不能转义。
【讨论】: