luaL_getmetatable 作用 lua table rehash Lua的Table的内存结构主要分array part和hash part,它们俩的内存大小是动态变化的,如果空间不够就需要分配更多的空间,如果空间利用率太少就需要缩减内存,这个过程叫做rehash。 现在来看看rehash是怎么样的过程。 rehash内部,主要是做了以下几件事: a.计算array part的key的数...
解释:如果对象没有一个元表,则函数返回nil,否则函数会查询原表中是否有"__metatable"字段,如果有返回其关联值,如果没有则会返回所给对象的元表。 usage 首先我们新建一个文件将文件命名为getmetatabletest.lua然后编写代码如下: -- 查看没有元表的情况 local aNumber = 100 print("\nthe matetable of a num...
$ make cd src; make all make[1]: Entering directory `/sandbox/luasocket/luasocket-2.0.2/src' gcc -I/usr/include/lua5.1 -DLUASOCKET_DEBUG -pedantic -Wall -O2 -fpic -llua -c -o luasocket.o luasocket.c gcc -I/usr/include/lua5.1 -DLUASOCKET_DEBUG -pedantic -Wall -O2 -...
key) return "不存在的元素" end 在 C/C++ 中,可以使用 luaL_getmetafield() 函数来获取元表中的 __index 方法,如下所示: int index(lua_State* L) { lua_getmetatable(L, -2); lua_pushvalue(L, -2); lua_rawget(L, -2); if (lua_isnil(L, -1)) { // 元素不存在,调用 __index 方法...
luaL_getmetatable(L, name.c_str());if(lua_rawequal(L,-1,-2)){ lua_pop(L,2);return*(Instance**)udata; } lua_pop(L,1); } }returnNULL; }returnNULL; } 开发者ID:RobloxLabs,项目名称:OpenBlox-Legacy,代码行数:23,代码来源:Instance.cpp ...
示例1: GetMetaTable ▲点赞 7▼ //lua_getmetatablefunc(L *State)GetMetaTable(indexint)bool{returnC.lua_getmetatable(L.s, C.int(index)) !=0} 开发者ID:szll,项目名称:golua,代码行数:4,代码来源:lua.go
方法名:getmetatable LuaTable.getmetatable介绍 暂无 代码示例 代码示例来源:origin: M66B/XPrivacyLua publicLuaValuecall(LuaValuetable,LuaValuemetatable){ finalLuaValuemt0=table.checktable().getmetatable(); if(mt0!=null&&!mt0.rawget(METATABLE).isnil()) ...
u.m_metatable = v.getmetatable();returnNONE; } 开发者ID:alibaba,项目名称:LuaViewPlayground,代码行数:9,代码来源:DebugLib.java 示例2: invoke ▲点赞 2▼ importorg.luaj.vm2.LuaValue;//导入方法依赖的package包/类publicVarargsinvoke(Varargs args){ ...
luaL_getmetatable(L, name.c_str());if(lua_rawequal(L,-1,-2)){ lua_pop(L,2);return*(Instance**)udata; } lua_pop(L,1); } }returnNULL; }returnNULL; } 开发者ID:RobloxLabs,项目名称:OpenBlox-Legacy,代码行数:23,代码来源:Instance.cpp ...