5

Lua 呼び出し元への戻り値としてテーブルをスタックにプッシュする C 関数を作成する場合、C コンテキストで何を返す必要がありますか? Lua 呼び出し元に渡す値の数を返すことになっていることは知っていますが、テーブルの場合、テーブル参照の場合は 1 ですか、それともテーブルの内容を説明する必要がありますか?

私が使用しているテーブルを戻す方法は、「Lua テーブルのプッシュ」に示されています。

4

1 に答える 1

6

直接返す lua 値は 1 つだけなので、C 関数は 1 を返す必要があります。

このようなもの:

int my_table( luaState * L) {
  lua_newtable(L);
  lua_pushstring(L, "a_key");
  lua_pushstring(L, "a_value");
  lua_settable(L, -3);
  return 1;
}
于 2013-05-29T23:59:29.313 に答える