現在、次のコードを使用してテーブルから値を取得しています(cstring = const char *):
template<>
cstring luaTable::get(cstring name) {
prep_get(name); // puts table[name] at -1 in stack
cstring result;
if(!lua_isstring(L, -1)) {
report(name, "is not a string");
result = "";
}
else {
result = lua_tostring(L, -1);
}
lua_pop(L, 1);
return result;
}
void luaTable::prep_get(cstring name) {
lua_pushstring(L, name); // name at -1, table at -2
lua_gettable(L, -2);
// table[name] is now at position -1 in stack
}
これは、フォームのテーブルに対して完全に機能しtable = {a=10, b=2}
ます。次のようなキーのないテーブルから値を取得するように変更するにはどうすればよいtable = {10, 2}
ですか?
簡単なものが欠けていると思いますが、答えが見つからないようです。
よろしくお願いします、ベン
編集:いくつかのポップを追加しました