5

次のように C-API から Lua テーブルを作成する方法:

TableName = {a, b, c}

テーブル名を設定するには?テーブルを作成して値を入れる方法しか知りませんが、テーブルの名前を設定する方法がわかりません。

名前のないテーブルを作成するコード:

lua_createtable(L, 0, 3);

lua_pushnumber(L, 1);
lua_setfield(L, -2, "a");

lua_pushnumber(L, 2);
lua_setfield(L, -2, "b");

lua_pushnumber(L, 3);
lua_setfield(L, -2, "c");
4

1 に答える 1

4

必要なのは、この行を最後に追加することだけです

lua_setglobal(L, "TableName");

ただし、C コードは Lua コードと同等ではありません。C コードは、次の Lua コードに対応しています。

TableName = { a=1, b=2, c=3 }

と同等のCコードが必要な場合

TableName = {"a", "b", "c"}

使用する

lua_pushliteral(L, "a"); lua_rawseti(L, -2, 1);
lua_pushliteral(L, "b"); lua_rawseti(L, -2, 2);
lua_pushliteral(L, "c"); lua_rawseti(L, -2, 3);
于 2016-06-16T14:31:06.393 に答える