0

私が持っているとしましょう。

local RockTable = {}

次に、20 個の岩を作成して RockTable に格納する for ループです。

table.remove(RockTable, ???)を使用して、必要な特定の岩を削除するにはどうすればよいですか。

私が理解しているように、Lua のテーブルからオブジェクトを削除すると、残りのオブジェクトはインデックス カウントを変更して前方に移動します。

うまくいけば、私はこれを十分に説明しました。

どんな助けでも大歓迎です。

4

1 に答える 1

1

table.insert各「岩」には、またはRockTable[#RockTable + 1]または同様の構文を使用してテーブルの配列部分に配置すると仮定すると、インデックスがあります。そのインデックスをに渡すだけtable.removeです。

名前で「岩」にアクセスしたい場合は、それらをテーブルの配列部分に入れないでください。それらのキーは整数であってはなりません。それらは文字列か何か他のものでなければなりません。名前の付いたもの。それらを「削除」するには、その値をに設定するだけですnil

--Setting the value:
RockTable["NameOfRock"] = rock;

--Removing the value:
RockTable["NameOfRock"] = nil;
于 2012-03-17T20:51:53.560 に答える