Lua-Arrays
Ein Array ist eine Sammlung von Elementen desselben Datentyps, die in einer bestimmten Reihenfolge angeordnet sind; es kann ein eindimensionales oder ein mehrdimensionales Array sein.
In Lua ist ein Array kein spezifischer Datentyp, sondern eine Datenstruktur, die zum Speichern einer Gruppe von Werten verwendet wird.
Tatsächlich besitzt Lua keinen eigenen Array-Typ; stattdessen verwendet es eine Datenstruktur namens"table", um die Funktionalität von Arrays zu implementieren.
Die Indexschlüsselwerte von Lua-Arrays können durch Ganzzahlen dargestellt werden, und die Größe des Arrays ist nicht festgelegt.
In Lua beginnen Indexwerte bei1als Startpunkt, aber du kannst auch angeben, bei 0 zu beginnen.
Eindimensionales Array
Ein eindimensionales Array ist der einfachste Array-Typ, und seine logische Struktur ist eine lineare Liste.
Zugriff auf Array-Elemente über Indizes:
Beispiel
local myArray = {10, 20, 30, 40, 50}
-- Zugriff auf Array-Elemente
print(myArray[1]) -- Ausgabe 10
print(myArray[3]) -- Ausgabe 30
Die Ausgabe der obigen Codeausführung ist:
10 30
Um die Länge eines Arrays zu berechnen (d. h. die Anzahl der Elemente im Array), können Sie den#Operator verwenden:
Beispiel
-- Array-Länge berechnen
local length = #myArray
print(length) -- Ausgabe 5
Die Ausgabe der obigen Codeausführung ist:
5
Ein eindimensionales Array kann einefor-Schleife verwenden, um über die Elemente im Array zu iterieren, wie im folgenden Beispiel:
Beispiel
local myArray = {10, 20, 30, 40, 50}
-- Das Array durchlaufen
for i = 1, #myArray do
print(myArray[i])
end
Die Ausgabe der obigen Codeausführung ist:
10 20 30 40 50
Lua-Indizes beginnen standardmäßig bei 1:
Beispiel
for i= 0, 2 do
print(array[i])
end
Die Ausgabe der obigen Codeausführung ist:
nil Lua Tutorial
Wie Sie sehen können, können wir ganzzahlige Indizes verwenden, um auf Array-Elemente zuzugreifen. Wenn der angegebene Index keinen Wert hat, gibt ernil zurück。
Darüber hinaus können wir auch negative Zahlen als Array-Indexwerte verwenden:
Beispiel
for i= -2, 2 do
array[i] = i *2
end
for i = -2,2 do
print(array[i])
end
Die Ausgabe der obigen Codeausführung ist:
-4 -2 0 2 4
Wir können auch Elemente im Array ändern:
Beispiel
local myArray = {10, 20, 30, 40, 50}
-- Array-Elemente ändern
myArray[2] = 25
-- Das Array durchlaufen
for i = 1, #myArray do
print(myArray[i])
end
Die Ausgabe der obigen Codeausführung ist:
10 25 30 40 50
Wir können auch Elemente zum Array hinzufügen:
Beispiel
local myArray = {10, 20, 30, 40, 50}
-- Ein neues Element am Ende des Arrays hinzufügen
myArray[#myArray + 1] = 60
-- Das Array durchlaufen
for i = 1, #myArray do
print(myArray[i])
end
Die Ausgabe der obigen Codeausführung ist:
10 20 30 40 50 60
Wir können auch Elemente aus dem Array löschen:
Beispiel
local myArray = {10, 20, 30, 40, 50}
-- Das dritte Element löschen
table.remove(myArray, 3)
-- Das Array durchlaufen
for i = 1, #myArray do
print(myArray[i])
end
Die Ausgabe der obigen Codeausführung ist:
10 20 40 50
Mehrdimensionales Array
Ein mehrdimensionales Array ist ein Array, das Arrays enthält, oder ein Array, bei dem der Indexschlüssel eines eindimensionalen Arrays einem Array entspricht.
Das Folgende ist ein mehrdimensionales Array mit drei Zeilen und drei Spalten:
Beispiel
array = {}
for i=1,3 do
array[i] = {}
for j=1,3 do
array[i][j] = i*j
end
end
-- Zugriff auf das Array
for i=1,3 do
for j=1,3 do
print(array[i][j])
end
end
Die Ausgabe der obigen Codeausführung ist:
1 2 3 2 4 6 3 6 9
Ein mehrdimensionales Array mit drei Zeilen und drei Spalten unter Verwendung verschiedener Indexschlüssel:
Beispiel
array = {}
maxRows = 3
maxColumns = 3
for row=1,maxRows do
for col=1,maxColumns do
array[row*maxColumns +col] = row*col
end
end
-- Zugriff auf das Array
for row=1,maxRows do
for col=1,maxColumns do
print(array[row*maxColumns +col])
end
end
Die Ausgabe der obigen Codeausführung ist:
1 2 3 2 4 6 3 6 9
Wie Sie sehen können, wurden in den obigen Beispielen für das Array bestimmte Indexwerte festgelegt, wodurch nil-Werte vermieden und Speicherplatz eingespart wird.
Andere Erweiterungen