在Lua中,你可以創建一個表的鍵是自己表:在Lua與C API創建表鍵的表
t = {}
t[{1,2}] = 2
我想知道怎麼做使用C類似的事情API。也就是說,我正在寫一個可從Lua調用的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。另外,在處理表格的Lua代碼中,我使用了ipairs
而不是pairs
。愚蠢的錯誤。