Cursus Raku / Essentiëlen / Boolean type / Oefeningen / Drievoudige negatie

Oplossing: Drievoudige negatie

Het programma dat in de taak wordt getoond, zal niet compileren en vereist een kleine aanpassing. Hier is de correcte en werkende variant (spatie toegevoegd om ! en !! te scheiden):

Code

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

🦋 Je kunt de volledige code vinden in het bestand triple-negation.raku.

Uitvoer

Het programma print een omgekeerde Booleaanse waarde zoals je waarschijnlijk had verwacht:

$ raku triple-negation.raku
True

Opmerkingen

Het was een beetje onverwacht dat het programma met drie uitroeptekens niet compileerde:

$ raku triple-negation.raku
===SORRY!=== Fout tijdens het compileren van /Users/ash/raku-course/exercises/booleans/triple-negation.raku
Twee termen op een rij
op /Users/ash/raku-course/exercises/booleans/triple-negation.raku:2
------> say !!!$value;
    verwacht een van:
        infix
        infix stopper
        postfix
        statement einde
        statement modifier
        statement modifier lus

Een extra spatie lost dit probleem op. Maar val niet in een andere valkuil. Overweeg het volgende programma:

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

Dit programma compileert maar eindigt met de volgende boodschap:

$ raku triple-negation.raku
False
    in block <unit> at exercises/booleans/triple-negation.raku line 2

Dit gebeurt omdat !!! een speciale operator is voor het markeren van een deel van de code als stubcode. Als het programma dit punt bereikt, eindigt het en print het de boodschap, die in ons geval de huidige waarde van de variabele $value was. Raadpleeg 📖 de documentatie voor meer details.

Cursusnavigatie

Getallen / Bewerkingen met getallen   |   Reeksen

Deze pagina is automatisch vertaald met ChatGPT 4o. Originele Engelse tekst.

Vertalingen van deze pagina: EnglishDeutschEspañolItalianoLatviešuNederlandsБългарскиРусскийУкраїнська