Lua - Arrays

Arrays sind geordnete Anordnungen von Objekten, die ein eindimensionales Array sein können, das eine Sammlung von Zeilen enthält, oder ein mehrdimensionales Array, das mehrere Zeilen und Spalten enthält.

In Lua werden Arrays mithilfe von Indizierungstabellen mit Ganzzahlen implementiert. Die Größe eines Arrays ist nicht festgelegt und kann aufgrund von Speicherbeschränkungen aufgrund unserer Anforderungen wachsen.

Eindimensionales Array

Ein eindimensionales Array kann mit einer einfachen Tabellenstruktur dargestellt und mit einer einfachen initialisiert und gelesen werden forSchleife. Ein Beispiel ist unten gezeigt.

array = {"Lua", "Tutorial"}

for i = 0, 2 do
   print(array[i])
end

Wenn wir den obigen Code ausführen, erhalten wir die folgende Ausgabe.

nil
Lua
Tutorial

Wie Sie im obigen Code sehen können, gibt es beim Versuch, auf ein Element in einem Index zuzugreifen, das nicht im Array vorhanden ist, null zurück. In Lua beginnt die Indizierung im Allgemeinen bei Index 1. Es ist jedoch auch möglich, Objekte bei Index 0 und unter 0 zu erstellen. Das Array mit negativen Indizes wird unten gezeigt, wo wir das Array mit einer for- Schleife initialisieren .

array = {}

for i= -2, 2 do
   array[i] = i *2
end

for i = -2,2 do
   print(array[i])
end

Wenn wir den obigen Code ausführen, erhalten wir die folgende Ausgabe.

-4
-2
0
2
4

Mehrdimensionales Array

Mehrdimensionale Arrays können auf zwei Arten implementiert werden.

  • Array von Arrays
  • Eindimensionales Array durch Manipulieren von Indizes

Ein Beispiel für ein mehrdimensionales Array von 3, 3 wird unten unter Verwendung eines Arrays von Arrays gezeigt.

-- Initializing the array
array = {}

for i=1,3 do
   array[i] = {}
	
   for j=1,3 do
      array[i][j] = i*j
   end
	
end

-- Accessing the array

for i=1,3 do

   for j=1,3 do
      print(array[i][j])
   end
	
end

Wenn wir den obigen Code ausführen, erhalten wir die folgende Ausgabe.

1
2
3
2
4
6
3
6
9

Ein Beispiel für ein mehrdimensionales Array wird unten unter Verwendung von Manipulationsindizes gezeigt.

-- Initializing the array

array = {}

maxRows = 3
maxColumns = 3

for row=1,maxRows do

   for col=1,maxColumns do
      array[row*maxColumns +col] = row*col
   end
	
end

-- Accessing the array

for row=1,maxRows do

   for col=1,maxColumns do
      print(array[row*maxColumns +col])
   end
	
end

Wenn wir den obigen Code ausführen, erhalten wir die folgende Ausgabe.

1
2
3
2
4
6
3
6
9

Wie Sie im obigen Beispiel sehen können, werden Daten basierend auf Indizes gespeichert. Es ist möglich, die Elemente spärlich zu platzieren, und so funktioniert die Lua-Implementierung einer Matrix. Da in Lua keine Nullwerte gespeichert werden, ist es möglich, ohne spezielle Technik in Lua viel Speicherplatz zu sparen, im Vergleich zu speziellen Techniken, die in anderen Programmiersprachen verwendet werden.