1

私は次のluaテーブルを持っています:

t = {name = "sandy"、age = "22"、major = "computerScience"}

繰り返したいのですが、以下の両方の方法が機能しません

方法1

function printAssociateTable(t)print( "before the loop")for i、v in ipairs(t)do print(v)end end

方法2

function printAssociateTable2(t)print( "before the loop")for k in ipairs(t)do print( "before the loop")print(k .. "is" ..tk)end end

どちらかのメソッドを呼び出すと、「ループの前」に出力されます。したがって、プログラムがループに入っていないという問題があります。

これを行うと、手動でテーブルにアクセスしようとしました:

returnt.name=>砂を与える

return t[name]=>はnilを与えます

return t ["name"] =>砂を与える!

テーブルを反復処理するにはどうすればよいですか?どちらの方法も、このような単純な配列でうまく機能することに注意してください。

a = {"a"、 "b"、 "c"、 "d"}

しかし、私はそれが私の連想配列で動作することを望んでいます

4

1 に答える 1

4

ipairsイテレータは、整数キーを持つ配列要素のみを選択します。次のように、必要なすべてのキーを反復処理するにはpairs、次のようにします。

function printAssociateTable(t)
  print("before the loop")
  for i,v in pairs(t) do
    print(v)
  end
end
于 2012-05-20T23:50:44.877 に答える