Latest web development tutorials

Lua-Tabelle (Tabelle)

Lua-Tabelle ist eine Datenstruktur verwendet, um uns zu helfen, verschiedene Arten von Daten, wie zum Beispiel zu erstellen: digital, Wörterbücher.

Lua-Tabelle mit dem zugehörigen Array, können Sie jede Art von Wert verwenden, um einen Index des Arrays zu machen, aber dieser Wert ist nicht gleich Null.

Lua Tabellengröße nicht festgelegt ist, können Sie nach ihren Bedürfnissen erweitern.

Lua auch durch die Tabelle und das Modul (Modul), wobei die Packung (package) und das Objekt (Objekt) von zu lösen. Zum Beispiel string.format Anzeige "Format" zum Indizieren der Tabelle String.


Tabelle (Tabelle) -Konfiguration

Der Konstruktor ist ein Ausdruck zu erstellen und die Tabelle zu initialisieren. Lua Tisch ist einzigartig starke Sache. Der einfachste Konstruktor ist {} verwendet, um eine leere Tabelle zu erstellen. Sie können das Array direkt initialisiert werden:

-- 初始化表
mytable = {}

-- 指定值
mytable[1]= "Lua"

-- 移除引用
mytable = nil
-- lua 垃圾回收会释放内存

Wenn wir eine Reihe von Elementen, Tisch, und dann a nach b zuweisen, dann a und b auf die gleiche Speicher. Wenn ein Satz auf Null, dann b auch Zugriff auf die Tabelle der Elemente. Wenn Sie nicht die Variable auf eine, Lua Garbage Collection wird reinigen Sie den entsprechenden Speicher angeben.

Das folgende Beispiel veranschaulicht die obige Beschreibung der Situation:

-- 简单的 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)

Der obige Code wird als Ergebnis der Ausführung:

mytable 的类型是 	table
mytable 索引为 1 的元素是 	Lua
mytable 索引为 wow 的元素是 	修改前
alternatetable 索引为 1 的元素是 	Lua
mytable 索引为 wow 的元素是 	修改前
mytable 索引为 wow 的元素是 	修改后
alternatetable 是 	nil
mytable 索引为 wow 的元素是 	修改后
mytable 是 	nil

OP-Tisch

In der folgenden Tabelle sind die allgemeinen Arbeitsmethoden:

Nein. Methode und Zweck
1 table.concat (table [, sep [, Start [, end]]]):

Concat ist verketten (Kettenglied) Abkürzung. table.concat () Funktion, um die Parameter in der Tabelle Array-Teil aller Elemente von Startposition in die Endposition aufgelistet gibt, Abstand zwischen den Elementen in der angegebenen Separator (September).

2 table.insert (Tisch, [pos,] Wert):

Array Teiltabelle angegebenen Position (pos) Einsatz ist ein Element der Wert Pos. Parameter ist optional und standardmäßig auf dem Endbereich des Arrays.

3 table.maxn (Tabelle)

den Tabellenschlüssel Wert für alle positiven Zahlen Geben Sie die größte Schlüsselwert. Ist der Wert positiv ist, das Schlüsselelement nicht vorhanden ist, gibt es 0. (Nach Lua5.2 diese Methode nicht existiert, wird dieser Artikel verwendet eine benutzerdefinierte Funktion zu erreichen)

4 table.remove (Tabelle [, pos])

Gibt ein Array von Tabellenteil wird an der Position pos Element befindet Danach wird Element nach vorne bewegt werden. Pos Parameter ist optional und standardmäßig auf die Tabellenlänge, ausgehend von dem letzten Element gelöscht.

5 table.sort (Tabelle [, comp])

Für eine bestimmte Tabelle in aufsteigender Reihenfolge.

Als nächstes sehen wir die Beispiele für diese Methoden an.

Tabelle Anschluss

Wir können concat () Methode verwendet zwei Tabelle zu verbinden:

fruits = {"banana","orange","apple"}
-- 返回 table 连接后的字符串
print("连接后的字符串 ",table.concat(fruits))

-- 指定连接字符
print("连接后的字符串 ",table.concat(fruits,", "))

-- 指定索引来连接 table
print("连接后的字符串 ",table.concat(fruits,", ", 2,3))

Führen Sie die oben genannten Code Ausgabeergebnisse:

连接后的字符串 	bananaorangeapple
连接后的字符串 	banana, orange, apple
连接后的字符串 	orange, apple

Einsetzen und Entfernen

Das folgende Beispiel zeigt die Tabelle Einsetzen und Entfernen Operationen:

fruits = {"banana","orange","apple"}

-- 在末尾插入
table.insert(fruits,"mango")
print("索引为 4 的元素为 ",fruits[4])

-- 在索引为 2 的键处插入
table.insert(fruits,2,"grapes")
print("索引为 2 的元素为 ",fruits[2])

print("最后一个元素为 ",fruits[5])
table.remove(fruits)
print("移除后最后一个元素为 ",fruits[5])

Führen Sie die oben genannten Code Ausgabeergebnisse:

索引为 4 的元素为 	mango
索引为 2 的元素为 	grapes
最后一个元素为 	mango
移除后最后一个元素为 	nil

Die Sortierung der Tabelle

Das folgende Beispiel zeigt die sort () Art der Verwendung, für die Tabelle Sortieren:

fruits = {"banana","orange","apple","grapes"}
print("排序前")
for k,v in ipairs(fruits) do
	print(k,v)
end

table.sort(fruits)
print("排序后")
for k,v in ipairs(fruits) do
	print(k,v)
end

Führen Sie die oben genannten Code Ausgabeergebnisse:

排序前
1	banana
2	orange
3	apple
4	grapes
排序后
1	apple
2	banana
3	grapes
4	orange

Tabelle Max

table.maxn nach Lua5.2 diese Methode nicht existiert, definieren wir table_maxn Methoden.

Das folgende Beispiel zeigt, wie die maximale Werttabelle zu erhalten:

function table_maxn(t)
    local mn = 0
    for k, v in pairs(t) do
        if mn < k then
            mn = k
        end
    end
    return mn
end
tbl = {[1] = "a", [2] = "b", [3] = "c", [26] = "z"}
print("tbl 长度 ", #tbl)
print("tbl 最大值 ", table_maxn(tbl))

Führen Sie die oben genannten Code Ausgabeergebnisse:

tbl 长度 	3
tbl 最大值 	26