If-Zuweisung
if- und elseif-Blöcke können eine Zuweisung anstelle eines Bedingungsausdrucks enthalten. Beim Auswerten der Bedingung findet die Zuweisung statt, und der zugewiesene Wert wird als Bedingung verwendet. Die zugewiesene Variable ist nur im Geltungsbereich des Bedingungsblocks verfügbar, d. h. sie ist nicht verfügbar, wenn der Wert nicht truthy ist. Für die Zuweisung musst du den “Walrus-Operator” := statt = verwenden.
if user := database.find_user "moon" print user.nameif user := database.find_user "moon" print user.nameif hello := os.getenv "hello" print "Du hast hello", helloelseif world := os.getenv "world" print "Du hast world", worldelse print "nichts :("if hello := os.getenv "hello" print "Du hast hello", helloelseif world := os.getenv "world" print "Du hast world", worldelse print "nichts :("If-Zuweisung mit mehreren Rückgabewerten. Nur der erste Wert wird geprüft, andere Werte bleiben im Scope.
if success, result := pcall -> "Ergebnis ohne Probleme erhalten" print result -- Variable result ist im Scopeprint "OK"if success, result := pcall -> "Ergebnis ohne Probleme erhalten" print result -- Variable result ist im Scopeprint "OK"While-Zuweisung
Abschnitt betitelt „While-Zuweisung“Du kannst if-Zuweisung auch in einer while-Schleife verwenden, um den Wert als Schleifenbedingung zu nutzen.
while byte := stream\read_one! -- mit dem Byte etwas anfangen print bytewhile byte := stream\read_one! -- mit dem Byte etwas anfangen print byte