2
luaL_newmetatable(L, "foo");
으로 생성 된 메타 테이블 foo
을 삭제하면 luaL_getmetatable(L, "foo");
이 NIL 값을 다시 푸시 할 수 있습니다.루아 C API : luaL_newmetatable로 만든 메타 테이블을 삭제 하시겠습니까?
luaL_newmetatable(L, "foo");
으로 생성 된 메타 테이블 foo
을 삭제하면 luaL_getmetatable(L, "foo");
이 NIL 값을 다시 푸시 할 수 있습니다.루아 C API : luaL_newmetatable로 만든 메타 테이블을 삭제 하시겠습니까?
메타 테이블을 삭제해야하는 이유가 무엇이든간에 가능합니다. luaL_newmetatable(L, "foo")
은 "foo"
키를 사용하여 Lua 레지스트리에 저장된 테이블을 생성합니다.
테이블을 삭제하려면 레지스트리의 "foo"
필드를 nil
으로 설정하기 만하면됩니다. C의 코드 :
lua_pushnil(L);
lua_setfield(L, LUA_REGISTRYINDEX, "foo");
등가 코드 루아 :
debug.getregistry()["foo"] = nil