Listen

Eine Liste hält mehrere Werte in Reihenfolge, eine Schleife geht sie einzeln durch, und ein zweiter Name für eine Liste erzeugt eine Kopie.

Eine Liste hält mehrere Werte hintereinander, zwischen eckigen Klammern. Die Werte sind von 0 an nummeriert, sodass fruits[0] der erste ist. fruits.length() sagt, wie viele es sind, und eine for-Schleife geht sie nacheinander durch.

const fruits = ["apple", "banana", "cherry"]
print fruits[0]
print fruits.length()
for fruit in fruits {
  print "I like {fruit}."
}
// prints apple
// prints 3
// prints I like apple.
// prints I like banana.
// prints I like cherry.

Zu einer Liste hinzufügen#

append fügt am Ende einen Wert hinzu. Es ändert die Liste, deshalb braucht die Liste ein var, genau wie eine Zahl, die du änderst.

var shopping = ["bread"]
shopping.append "milk"
shopping.append "eggs"
print shopping
// prints ["bread", "milk", "eggs"]

Zwei Namen, zwei Listen#

Gibst du einer Liste einen zweiten Namen, bekommst du eine Kopie. Änderst du die Kopie, bleibt die erste Liste unberührt: Nichts ändert sich hinter deinem Rücken, ein Wert ändert sich nur dort, wo du ihn änderst.

Viele Sprachen teilen sich stattdessen eine Liste zwischen beiden Namen, und eine Änderung über den einen Namen zeigt sich auch beim anderen. TorbScript nicht: Jeder Wert verhält sich hier wie eine Zahl. Die Referenz nennt das Wertsemantik.

const original = ["bread"]
var copy = original
copy.append "milk"
print original
print copy
// prints ["bread"]
// prints ["bread", "milk"]

Übung#

Addiere die Preise mit einer for-Schleife, sodass das Programm Total: 16 ausgibt.

const prices = [3, 8, 5]
var total = 0
print "Total: {total}"
Erwartete Ausgabe
Total: 16

Auf deinem Computer ausführen: torb run lists.trb

Tipp

Geh die Liste mit for price in prices { ... } durch und addiere jeden price zu total.

Lösung
const prices = [3, 8, 5]
var total = 0
for price in prices {
  total = total + price
}
print "Total: {total}"
// prints Total: 16

Zusammenfassung#

Eine Liste hält Werte ab Position 0 in Reihenfolge, append fügt zu einer var-Liste hinzu, und ein zweiter Name ist eine eigene Kopie.

Esc