사용자 도구

사이트 도구


kb:luaauxapiuserdata

LuaAuxApi/UserData

유저데이터 다루기

luaL_newmetatable

int luaL_newmetatable (lua_State *L, const char *tname);

메타테이블을 생성해서, 스택에다 푸쉬한다. tname 인수는 이 메타 테이블을 가리키는 데 사용할 일종의 별명(alias)이다. 이 함수를 호출하면 스택에 메타테이블이 푸쉬되는 것 말고도, 레지스트리에 별명과 메타테이블이 서로를 키로서 추가된다. 말이 좀 이상한데, 대강 다음과 같다.

registry[alias] = metatable
registry[metatable] = alias

luaL_getmetatable

void luaL_getmetatable (lua_State *L, const char *tname);

주어진 별명을 가진 메타테이블을 레지스트리로부터 읽어와 스택에다 푸쉬한다.

luaL_checkudata

void *luaL_checkudata (lua_State *L, int ud, const char *tname);

ud 인덱스의 아이템이 주어진 별명의 메타 테이블을 가진 userdata 인지를 체크한다. 맞다면 userdata의 포인터를 반환하고, 아니라면 NULL을 반환한다. userdata가 아닌 경우에도 NULL을 반환한다.


kb/luaauxapiuserdata.txt · 마지막으로 수정됨: 2014/11/07 09:59 (바깥 편집)