루아에서, 당신은 누구의 키 자체가 테이블에있는 테이블을 만들 수 있습니다것은
t = {}
t[{1,2}] = 2
나는 C를 사용하여 유사한 일을하는 방법을 알고 싶습니다 API. 즉, 나는 루아에서 호출 할 수있는 C 함수를 작성 중이며, 테이블 키가있는 테이블을 리턴 할 것이다. 테이블로 키를 밀어 넣고 lua_settable을 사용하려고했지만 아무 것도하지 않는 것 같습니다.
편집 : 관련 코드 :
lua_createtable(L, 0, n);
for(i = 0; i < n; ++i){
// push the key table
lua_createtable(L, 2, 0);
for(j = 0; j < 2; ++j){
lua_pushinteger(L, j+1);
lua_pushinteger(L, j);
lua_settable(L, -3);
}
// push the value table
lua_createtable(L, 4, 0);
for(j = 0; j < 4; ++j){
lua_pushinteger(L, j+1);
lua_pushnumber(L, j);
lua_settable(L, -3);
}
lua_settable(L, -3);
}
편집 : 나는 바보 당하고; 마지막으로 lua_objlen(L, -1)
을 사용하여 테이블의 크기를 확인했습니다. 정수 키 입력 항목이 없으므로 0을 반환합니다. 또한 테이블을 처리 한 루아 코드에서 pairs
대신 ipairs
을 사용했습니다. 어리석은 실수.