1

私の質問は、luaテーブルに2つの値を挿入する方法(またはその場合)です。

(可変数の値)を返す関数を取得しました

function a(x, y)
   return x, y
end

そして、そのポイントをテーブルに挿入する別の関数、

function b(x, y)
   table.insert(myTable, x, y)
end

では、どのようにして、可変数の引数を使用して関数bを呼び出し、それらすべてをテーブルに挿入できるようにすることができますか?

4

2 に答える 2

1

select関数はvarargで動作します...

function b(...)
  for i = 1, select('#',...) do
    myTable[#myTable+1] = select(i,...)
  end
end

例えば、

> myTable = {'a','b'}
> b('c','d')
> for i = 1, #myTable do print(myTable[i]) end
a
b
c
d
> 
于 2012-11-04T01:14:53.893 に答える
1

関数の最後のパラメーターが...(vararg関数と呼ばれる)の場合、Luaインタープリターは追加の引数をに配置し...ます。を使用してテーブルに変換し{...}、キー/値をという名前のグローバルテーブルにコピーできますmyTable。関数は次のようになります。

function b(...)
  for k, v in pairs({...}) do
    myTable[k] = v
  end
end

b(1, 2) -- {[1] = 1, [2] = 2} is added to myTable

要素をに置き換えたり、マージしたり、追加したりするかどうかに応じて、関数を微調整する必要がありますmyTable

于 2012-11-04T01:04:14.397 に答える