Luaテーブル(テーブル)
table は、数値、辞書などのさまざまなデータ型の作成に役立つ Lua のデータ構造です。
Lua テーブルは連想配列を使用します。配列のインデックスとして任意のタイプの値を使用できますが、この値を nil にすることはできません。
Lua テーブルには固定サイズがなく、ニーズに応じて拡張できます。
Lua はモジュール、パッケージ、オブジェクトを解決するためにテーブルも使用します。 たとえば、string.format は、テーブル文字列のインデックス付けに「format」を使用することを意味します。
テーブル(table)の構築
コンストラクターはテーブルを作成し初期化する式です。テーブルは Lua に特有の強力なものです。最も単純なコンストラクターは {} で、空のテーブルを作成します。配列を直接初期化できます:
-- 初始化表 mytable = {} -- 指定值 mytable[1]= "Lua" -- 移除引用 mytable = nil -- lua 垃圾回收会释放内存
テーブル a の要素を設定し、次に a を b に代入すると、a と b は両方とも同じメモリを指します。 a が nil に設定されている場合 そうすると、b も table の要素にアクセスできるようになります。 a を指す指定された変数がない場合、Lua のガベージ コレクション メカニズムは対応するメモリをクリーンアップします。
次の例は、上記の説明を示しています:
-- 简单的 table mytable = {} print("mytable 的类型是 ",type(mytable)) mytable[1]= "Lua" mytable["wow"] = "修改前" print("mytable 索引为 1 的元素是 ", mytable[1]) print("mytable 索引为 wow 的元素是 ", mytable["wow"]) -- alternatetable和mytable的是指同一个 table alternatetable = mytable print("alternatetable 索引为 1 的元素是 ", alternatetable[1]) print("mytable 索引为 wow 的元素是 ", alternatetable["wow"]) alternatetable["wow"] = "修改后" print("mytable 索引为 wow 的元素是 ", mytable["wow"]) -- 释放变量 alternatetable = nil print("alternatetable 是 ", alternatetable) -- mytable 仍然可以访问 print("mytable 索引为 wow 的元素是 ", mytable["wow"]) mytable = nil print("mytable 是 ", mytable)
上記のコードの実行結果は次のとおりです:
mytable 的类型是 table mytable 索引为 1 的元素是 Lua mytable 索引为 wow 的元素是 修改前 alternatetable 索引为 1 的元素是 Lua mytable 索引为 wow 的元素是 修改前 mytable 索引为 wow 的元素是 修改后 alternatetable 是 nil mytable 索引为 wow 的元素是 修改后 mytable 是 nil
テーブル操作
以下は、テーブル操作の一般的に使用されるメソッドのリストです:
シリアル番号 | メソッドと目的 |
---|---|
table.concat (table [, sep [, start [, end]]]):concat は concatenate (chain, connection) の略です。関数は、指定されたパラメータをリストします。 テーブルの配列部分の開始位置から終了位置までのすべての要素は、指定されたセパレータ (sep) で区切られます。 | |
table.insert (table, [pos,] value):テーブルの配列部分の指定された位置(pos)にvalue値を持つ要素を挿入します。posパラメータは次のとおりです。オプションで、デフォルトは配列になります。セクションの終わり。 | |
table.maxn (テーブル)テーブル内のすべての正のキー値の中で最大のキー値を指定します。正のキー値の場合、0 が返されます。 ( このメソッドは Lua5.2 以降は存在しません。この記事ではカスタム関数を使用して実装しています) | |
table.remove (table [, pos]) にあるテーブル配列部分を返します。 pos 位置要素。後続の要素は前方に移動されます。pos パラメータはオプションであり、デフォルトはテーブルの長さになります。つまり、最後の要素から削除されます。 | |
table.sort (table [, comp]) 指定されたテーブルを昇順に並べ替えます。 |