Zusammenfassung
In dieser Lektion hast du gelernt:
- Eine Tabelle ist in Lua die einzige Möglichkeit, Werte zu gruppieren. Eine Tabelle, die Werte der Reihe nach enthält, ist eine Liste:
local pflanzen = {"Karotte", "Kartoffel"}. Eine leere Liste ist{}. - Indizes beginnen bei 1:
pflanzen[1]ist das erste Element. Ein Index ohne Element, wiepflanzen[0]oder einer hinter dem Ende, gibtnilund keinen Fehler. Der Fehler kommt später, wenn du dasnilbenutzt:attempt to concatenate a nil value (field '?'). #pflanzenist die Länge der Liste, undpflanzen[#pflanzen]ist ihr letztes Element.pflanzen[2] = "Tomate"ändert ein Element, undpflanzen[#pflanzen + 1] = "Mais"hängt eins ans Ende. Lass keine Löcher (nilzwischen Elementen):#undipairsfunktionieren dann nicht mehr zuverlässig.table.insert(liste, wert)hängt ein Element ans Ende, undtable.insert(liste, position, wert)fügt es an einer Position ein und schiebt den Rest nach rechts.table.remove(liste)entfernt das letzte Element,table.remove(liste, position)das Element an einer Position, und beide geben das entfernte Element zurück.for i = 1, #pflanzen dogeht alle Indizes durch (nicht ab 0 und nicht bis#pflanzen + 1).for i, pflanze in ipairs(pflanzen) dogibt dir in jedem Durchlauf den Index und das Element, und_steht für einen Wert, den du nicht brauchst.print(pflanzen)gibt nur die Adresse der Tabelle aus,table: 0x….table.concat(pflanzen, ", ")verbindet Texte und Zahlen mit dem Trennzeichen dazwischen zu einem Text.- Muster mit Listen: die Summe (vor der Schleife bei 0 beginnen, nach der Schleife ausgeben), der Durchschnitt (
summe / #liste, immer eine Dezimalzahl, gerundet mitstring.format("%.1f", …)) und der größte oder kleinste Wert (mit dem ersten Element beginnen und seinen Index merken, wenn du wissen willst, wo er steht). table.sort(liste)sortiert Zahlen vom kleinsten an und Texte nach den Codes der Zeichen, mit Großbuchstaben vor Kleinbuchstaben. Es ändert die Liste und gibt nichts zurück.
Nach dieser Lektion kommt noch ein kleines Projekt, ein Kürbisfest, in dem du Schleifen und Listen einsetzt. Dann lernst du in der Lektion über Funktionen, eigene Funktionen zu schreiben und damit eine Liste in jeder beliebigen Reihenfolge zu sortieren. Aber zuerst übe, was du kannst, an Emmas Tomatenernte.
So schreibst du es:
Anweisungen
- 1
Zwei weitere Tage sind vergangen. Hänge
8und5ans Ende vonernteund gib dann die ganze Liste mittable.concataus:Ernte: 6, 9, 4, 11, 7, 8, 5. - 2
Gib die Summe und den Durchschnitt mit einer Nachkommastelle aus:
Insgesamt: 50 kg, Durchschnitt: 7.1 kg. - 3
Finde den besten Tag und gib seine Nummer (seinen Index) und die Menge aus, die Emma an ihm gepflückt hat:
Bester Tag: 4 (11 kg). - 4
Sortiere zum Schluss
ernteund gib sie aus:Sortiert: 4, 5, 6, 7, 8, 9, 11.