問題タブ [lua-table]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
11545 参照

c++ - C++ で Lua テーブルを作成し、それを Lua 関数に渡すにはどうすればよいですか?

C++ にはmap<string, string>、不明な数のエントリを含む があります。Lua関数がデータをテーブルとして使用できるように、これをLua関数に渡すにはどうすればよいですか?

0 投票する
3 に答える
33346 参照

lua - Luaで連想テーブルをすばやく初期化するには?

Lua では、次の方法でテーブルを作成できます。

ただし、連想テーブルを作成したい場合は、次の方法で行う必要があります。

以下はエラーになります:

私の最初のコードスニペットと同様にそれを行う方法はありますか?

0 投票する
15 に答える
81463 参照

lua - Luaテーブルを値でコピーするにはどうすればよいですか?

最近、次のような Lua コードを少し書きました。

変数は、Lua のテーブル自体の値ではなく、匿名テーブルへの参照を保持するため、明らかに、それは私がやりたかったことではありません。これはProgramming in Luaで明確に説明されていますが、忘れていました。

問題はcopy = a、値のコピーを取得する代わりに、何を書くべきかということaです。

0 投票する
2 に答える
3295 参照

memory-management - テーブルの Lua ガベージ コレクション、ネストされたテーブル

[Lua のマニュアルを読みましたが、確かな回答が得られませんでした。]

インデックス付き配列として機能する Lua テーブルがあるとします。

このテーブルを処分するにはどうすればよいですか? myArray を nil に設定するだけですか? または、配列を反復処理して、インデックス付きの各要素を nil に設定する必要がありますか?

同様に、辞書として機能する Lua テーブルがあるとします。

「myDictionary」を nil に設定することはできますか、それとも反復する必要がありますか?

最後に、テーブルをネストした場合、メモリ管理に関してはどうすればよいでしょうか? 例えば

これらの各サブテーブルを反復処理して nil に設定する必要がありますか? 助けてくれてありがとう。

0 投票する
8 に答える
89446 参照

lua - Luaテーブルが空(エントリが含まれていない)かどうかを判断する最も効率的な方法は?

テーブルが空であるかどうか(つまり、現在、配列スタイルの値もdictスタイルの値も含まれていないか)を判断する最も効率的な方法は何ですか?

現在、私は使用していnext()ます:

より効率的な方法はありますか?

注:#演算子はテーブル内の配列スタイルの値のみを操作するため、ここでは不十分です。どちらも0を返すため、#{test=2}区別できません#{}。また、テーブル変数がであるかどうかを確認するだけでnilは不十分であることに注意してください。 nil値ですが、エントリが0のテーブル(つまり{})。

0 投票する
9 に答える
75177 参照

merge - 両方にある要素を上書きする2つのテーブルをマージするにはどうすればよいですか?

特定のアイテムが両方にある場合は、2つのテーブルをマージし、2番目のコンテンツを最初のテーブルに上書きする必要があります。私は見ましたが、標準ライブラリはこれを提供していないようです。そのような関数はどこで入手できますか?

0 投票する
11 に答える
72013 参照

lua - Lua でのテーブルの連結

元の投稿

Lua には組み込み関数がないため、テーブルを一緒に追加できる関数を探しています。私はかなりグーグルで検索し、遭遇したすべてのソリューションを試しましたが、どれも正しく機能していないようです.

シナリオは次のようになります。アプリケーションに組み込まれた Lua を使用しています。アプリケーションの内部コマンドは、テーブルの形式で値のリストを返します。

私がやろうとしているのは、そのコマンドをループで再帰的に呼び出し、返された値を再びテーブルの形式で前の反復からテーブルに追加することです。


編集

今後この投稿に出くわす人は、@gimf が投稿した内容に注意してください。Lua のテーブルは他の何よりも配列に似ているため (リスト コンテキストであっても)、1 つのテーブルを別のテーブルに追加する本当の正しい方法はありません。最も近い概念は、テーブルのマージです。その点については、記事「Lua - テーブルをマージしますか?」を参照してください。

0 投票する
1 に答える
2112 参照

binding - Luaバインディング:テーブルとユーザーデータ

C ++クラスのLuaバインディングを作成する場合、テーブルまたはuserdataオブジェクトを返す必要がありますか?

それぞれの方法の長所と短所を知っている人はいますか?

0 投票する
3 に答える
21174 参照

c++ - C++ から Lua テーブルを反復処理していますか?

Luaから C++ にテーブルをロードしようとしていますが、うまくいきません。私は最初の繰り返しをうまくやっていますが、lua_next への 2 回目の呼び出しでクラッシュします。何か案は?

ルアファイル:

C++ ファイル - 最初にこれを行いました:

次に、リファレンスマニュアルから試しました:

そして最後にこれ:

当然、L は lua_State* であり、初期化してファイルを解析しています。

編集: Jesse Beder の回答に応えて、ロガーを使用してこのコードを試しましたが、まだ動作しません。

この出力が得られました:

ジェシー、あなたが言ったことはすべて真実のようです。しかし、それでも次の反復に進むことができません。

Edit2: 正確なコードを新しいプロジェクトにコピーしようとしましたが、周囲のすべてのクラスと、あちこちに含める必要のないものをスキップして動作します。しかし、ここではそうではありません。

Edit3: もう少し 絞り込みました。2D エンジンとしてhgeを使用しています。以前のすべてのコードを関数テストに入れました。

私が理解している限り、hge は lua では何もしません。 これは、私が作成した小さなテストのソース コードです。hge 1.81 のソースはこちらです。

Edit4: 質問のサイズが制御不能になっていますが、仕方がありません。これは、私が削減できた最小のコードです。