2

luaのキーの値を置き換える必要があります。たとえば、テーブルについて考えてみましょう。

t = {"book", "ball", "bank"}

ここでは、「ball」ではなく「box」の値を変更する必要があります。どうやってするか ?

以前は、値を見つけてキーを変更しようとしましたが、機能しませんでした。

for key, value in pairs(t) do
  if key == 2 then
    value = "box"
  end
end

しかし、それはうまくいきませんでした..誰かが別の方法を知っているなら、私に提案をしてください?

4

1 に答える 1

10

それは論理的です。

ループでは、ループ変数keyvalueはローカルです。したがって、それらを再割り当てすると、ローカル変数によって参照される値が変更されるだけです。ループを1回実行すると、ローカルはスコープを使い果たし、破棄されます。

テーブル参照の値をテーブル自体に変更するには、次のようにします。

 t[key]="box"

この単純な例では、実行t[2]="box"するだけでも明らかに役立ちます;)(1つの値を置き換えるためだけにテーブル全体をループする必要はありません)より詳細な情報は、マニュアルに記載されています。

于 2012-10-11T07:40:30.973 に答える