函式庫指南 |
|
如果不反映社群習慣,可以隨時修改。此頁尚未完成。
這是常見的做法。呼叫 luaL_register
時,可以將 "modulename"
替換為 NULL
。require 函式會執行必要作業,將模組註冊到 package.loaded[modulename],而且模組的名稱容易更改。
static const luaL_reg register_module[] = { { "lua_function_name", c_function_name }, ... { NULL, NULL } }; LUALIB_API int luaopen_modulename(lua_State* L) { luaL_register(L, "modulename", register_module); return 1; }
您應使用 luaL_newmetatable
,它會將 metatable 加入名稱,如果 metatable 不存在,就會建立並予以加入,這樣你就可以填寫它。例如
if(luaL_newmetatable(L, "metatable name")){ /* fill it in */ }
您在使用 metatable 名稱時應小心,避免與其他模組衝突。例如,可以在 XML 文件中使用 URI 作為命名空間。