2

fooで作成されたメタテーブルを削除してluaL_newmetatable( L, "foo" );luaL_getmetatable( L, "foo" );NIL 値を再度プッシュするにはどうすればよいですか?

4

1 に答える 1

4

メタテーブルを削除しなければならない理由が何であれ、それは可能です。luaL_newmetatable(L, "foo")キーを持つLuaレジストリに格納されるテーブルを作成します"foo"

"foo"テーブルを削除するには、レジストリのフィールドを に設定するだけnilです。C のコード:

lua_pushnil(L);
lua_setfield(L, LUA_REGISTRYINDEX, "foo");

Lua での同等のコード:

debug.getregistry()["foo"] = nil
于 2011-02-17T19:54:26.143 に答える