lua_getmetatable, lua_setmetatable,
1 lua_getmetatable
int lua_getmetatable (lua_State *L, int index);
ÇØ´ç À妽º¿¡ ÀÖ´Â ¾ÆÀÌÅÛÀÇ ¸ÞŸÅ×À̺íÀ» °¡Á®¿Í ½ºÅÿ¡´Ù Ǫ½¬ÇÑ´Ù. Á¤»óÀûÀ¸·Î µ¿ÀÛÇÑ °æ¿ì¿¡´Â 0ÀÌ ¾Æ´Ñ °ªÀ» ¹ÝȯÇÑ´Ù. À妽º°¡ À߸øµÇ¾ú°Å³ª, ¾ÆÀÌÅÛ¿¡ ¸ÞŸÅ×À̺íÀÌ ¾ø´Â °æ¿ì, ½ºÅÿ¡ ¾Æ¹« °Íµµ Ǫ½¬ÇÏÁö ¾Ê°í, 0À» ¹ÝȯÇÑ´Ù.
2 lua_setmetatable
int lua_setmetatable (lua_State *L, int index);
½ºÅÃÀÇ ¸Ç À§¿¡¼ Å×À̺íÀ» ÆËÇØ, ±× Å×À̺íÀ» ÁöÁ¤µÈ À§Ä¡¿¡ ÀÖ´Â ¾ÆÀÌÅÛÀÇ ¸ÞŸÅ×À̺í·Î ¼³Á¤ÇÑ´Ù. Áï ÀÌ ÇÔ¼ö¸¦ È£ÃâÇϱâ Àü¿¡ ¸ÞŸÅ×À̺í·Î »ç¿ëÇÒ Å×À̺íÀ» Ǫ½¬Çص־ßÇÑ´Ù. ¹«»çÈ÷ ¼³Á¤ÇÑ °æ¿ì¿¡´Â 0ÀÌ ¾Æ´Ñ °ªÀ» ¹ÝȯÇϰí, ½ÇÆÐÇÑ °æ¿ì¿¡´Â 0À» ¹ÝȯÇÑ´Ù. µÎ °æ¿ì ¸ðµÎ ½ºÅÿ¡ ¸ÕÀú Ǫ½¬µÈ ¸ÞŸÅ×À̺íÀº ÆËµÈ´Ù.
// »õ·Î¿î Å×À̺íÀ» »ý¼ºÇØ,
// __index ¸ÞŸ¸Þ¼µå¸¦ ÀÚ±â ÀÚ½ÅÀ¸·Î ¼³Á¤ÇÑ´Ù.
lua_newtable(L);
lua_pushstring(L, "__index");
lua_pushvalue(L, -2);
lua_settable(L, -3);
// À§¿¡¼ »ý¼ºÇÑ Å×À̺íÀ» ´Ù¸¥ Å×À̺íÀÇ ¸ÞŸÅ×À̺í·Î ¼³Á¤ÇÑ´Ù.
lua_setmetatable(L, some_where_other_table_exist);
SeriousMoin v1 (koMoinMoin 1.0a4 Modified)