在 API 中将 Lua 代码与 C 代码混合使用

我正在为我的应用程序创建一个 Lua API,以进行快速、数据驱动的设计和可修改性。它遵循这个模块/子模块层次结构:

core
 -> audio
 -> network
 -> video
 -> etc.

每个子模块应该在一个文件中实现(以及一个用于顶级core函数的文件),有些函数也可以用 C 实现。

最好的组织方式是什么?

点赞
用户752976
用户752976

一个方式是将组件视为单独的库,并在 Lua 中将它们引入 core 对象中。将 audionetwork 等实现为独立组件,并使 core 按以下方式运行:

-- core.lua

core = {
    audio = require "audio",
    network = require "network",
    ...
}
return core

这应该足够好用了,"模块重新导出模式" 是我在许多语言中看到的,所以我想它应该可以正常工作。

将C和Lua实现混合在一个模块中应该很容易通过谷歌搜索找到解决方法。

2014-03-20 18:21:17