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

-- Erstelle ein Array
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

local myArray = {10, 20, 30, 40, 50}

-- 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

-- Erstelle ein Array
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

array = {"Lua", "Tutorial"}

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

array = {}

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

-- Erstelle ein Array
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

-- Erstelle ein Array
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

-- Erstelle ein Array
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

-- Initialisiere das Array
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

-- Initialisiere das Array
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