Wahrheitswerte und Typen
Neben Zahlen und Texten hat Lua noch eine einfache Art von Wert: den Wahrheitswert (englisch „boolean“, benannt nach dem Mathematiker George Boole). Er hat nur zwei Werte, true und false. Er ist die Antwort auf eine Ja-Nein-Frage: Regnet es? Ist die Scheune offen?
local regnet = false
local scheuneOffen = true
print(regnet)
print("Scheune offen:", scheuneOffen)Das gibt Folgendes aus:
false
Scheune offen: trueIn der nächsten Lektion entscheiden Wahrheitswerte, was dein Programm tut, zum Beispiel, ob Emma das Feld gießt. Achte vorerst auf drei Dinge:
trueundfalsesind Schlüsselwörter und werden ohne Anführungszeichen geschrieben."true"in Anführungszeichen ist ein Text, der nur wie ein Wahrheitswert aussieht.- Sie werden kleingeschrieben.
Truemit großem Anfangsbuchstaben ist nur ein Name, und weil es keine Variable namensTruegibt, ist sein Wertnil. - Wie
nilkann auch ein Wahrheitswert nicht mit..mit einem Text verbunden werden:"Es regnet: " .. regnetendet mit dem Fehlerattempt to concatenate a boolean value (local 'regnet'). Gib ihn mit einem Komma aus oder wandle ihn zuerst in einen Text um, wie du es in der nächsten Übung lernst.
Jeder Wert hat einen Typ: eine Zahl, ein Text, ein Wahrheitswert … Die Funktion type sagt dir als Text, welcher es ist:
print(type(120))
print(type(2.5))
print(type("Emma"))
print(type(true))
print(type(nil))Das gibt Folgendes aus:
number
number
string
boolean
niltype sagt number für Integer und Floats gleichermaßen; um sie zu unterscheiden, nimm math.type. Später im Kurs lernst du weitere Typen kennen, wie table und function (probiere print(type(print))).
In Lua gehört der Typ zum Wert, nicht zur Variablen. Dieselbe Variable kann jetzt eine Zahl und später einen Text enthalten:
local ernte = 12
print(type(ernte))
ernte = "zwölf"
print(type(ernte))Das gibt Folgendes aus:
number
stringLua erlaubt das, aber es verwirrt jeden, der das Programm liest. Halte in jeder Variablen eine Art von Wert.
So schreibst du es:
Anweisungen
- 1
Gib darunter
milchund ihren Typ genauso aus wie in den beiden Zeilen darüber:Emma string 1 number 6.5 number - 2
Gib
scheuneOffenund seinen Typ genauso aus. Es heißtstring: Der Wert steht in Anführungszeichen, ist also ein Text. Korrigiere Zeile 5, sodassscheuneOffenein Wahrheitswert ist und das Programm Folgendes ausgibt:Emma string 1 number 6.5 number false boolean - 3
kueheundmilchsind beide Zahlen. Gib in der letzten Zeile aus, was für eine Zahl jede von ihnen ist:math.type(kuehe)undmath.type(milch), durch ein Komma getrennt:Emma string 1 number 6.5 number false boolean integer float