web-dev-qa-db-ja.com

Luaのテーブルに追加する方法

私は同等のものを見つけようとしています:

foo = []
foo << "bar"
foo << "baz"

増分インデックスを作成する必要はありません。これを行う簡単な方法はありますか?

32
drewish

メインライブラリのinsertセクションにあるtable関数を探しています。

foo = {}
table.insert(foo, "bar")
table.insert(foo, "baz")
43
rsethc
foo = {}
foo[#foo+1]="bar"
foo[#foo+1]="baz"

これは、#演算子は、リストの長さを計算します。空のリストの長さは0などです。

Lua 5.3+を使用している場合、ほぼ正確に必要なことを実行できます。

foo = {}
setmetatable(foo, { __shl = function (t,v) t[#t+1]=v end })
_= foo << "bar"
_= foo << "baz"

式はLuaのステートメントではないため、何らかの方法で使用する必要があります。

33
lhf

私は個人的にtable.insert 関数:

table.insert(a,"b");

これにより、テーブル全体を反復処理する必要がなくなり、メモリや時間などの貴重なリソースを節約できます。

6
AStopher