函式庫指南

lua-users home
wiki

沒有正式的指南,但按照這裏的說明去做可能不錯。

如果不反映社群習慣,可以隨時修改。此頁尚未完成。

註冊函式

這是常見的做法。呼叫 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;
}

註冊使用者資料的 metatable

您應使用 luaL_newmetatable,它會將 metatable 加入名稱,如果 metatable 不存在,就會建立並予以加入,這樣你就可以填寫它。例如

	if(luaL_newmetatable(L, "metatable name")){
		/* fill it in */
	}

您在使用 metatable 名稱時應小心,避免與其他模組衝突。例如,可以在 XML 文件中使用 URI 作為命名空間。


近期變更 · 偏好設定
編輯 · 歷史記錄
上次編輯時間為 2009 年 6 月 18 日下午 11:37 GMT (差異)