Raku-Kurs / Grundlagen / Boolescher Typ / Übungen / Dreifache Verneinung

Lösung: Dreifache Verneinung

Das im Task gezeigte Programm lässt sich nicht kompilieren und erfordert eine kleine Korrektur. Hier ist die korrekte und funktionierende Variante (Leerzeichen hinzugefügt, um ! und !! zu trennen):

Code

my $value = False;
say ! !!$value;

🦋 Du kannst den vollständigen Code in der Datei triple-negation.raku finden.

Ausgabe

Das Programm gibt einen invertierten Booleschen Wert aus, wie du wahrscheinlich erwartet hast:

$ raku triple-negation.raku
True

Kommentare

Es war etwas unerwartet, dass das Programm mit drei Ausrufezeichen nicht kompiliert:

$ raku triple-negation.raku
===SORRY!=== Fehler beim Kompilieren von /Users/ash/raku-course/exercises/booleans/triple-negation.raku
Zwei Begriffe in Folge
bei /Users/ash/raku-course/exercises/booleans/triple-negation.raku:2
------> say !!!$value;
    erwartet wurde einer der folgenden:
        Infix
        Infix-Stoppzeichen
        Postfix
        Anweisungsende
        Anweisungsmodifikator
        Anweisungsmodifikatorschleife

Ein zusätzliches Leerzeichen löst dieses Problem. Aber falle nicht in eine andere Falle. Betrachte das folgende Programm:

my $value = False;
say !!! $value;

Dieses Programm kompiliert, endet jedoch mit der folgenden Meldung:

$ raku triple-negation.raku
False
    im Block <unit> bei exercises/booleans/triple-negation.raku Zeile 2

Dies geschieht, weil !!! ein spezieller Operator ist, um einen Teil des Codes als Platzhaltercode zu markieren. Wenn das Programm diesen Punkt erreicht, wird es beendet und gibt die Nachricht aus, die in unserem Fall der aktuelle Wert der Variablen $value war. Weitere Details findest du in 📖 der Dokumentation.

Kursnavigation

Zahlen / Operationen mit Zahlen   |   Bereiche

Diese Seite wurde automatisch mit ChatGPT 4o übersetzt. Originaler englischer Text.

Übersetzungen dieser Seite: EnglishDeutschEspañolItalianoLatviešuNederlandsБългарскиРусскийУкраїнська