Raku kurss / Pamati / Loģiskais tips / Vingrinājumi / Trīskārša noliegšana

Risinājums: Trīskārša noliegšana

Programmā, kas parādīta uzdevumā, ir kļūda un tā nesakompilēsies, nepieciešams neliels labojums. Šeit ir pareizā un strādājošā versija (pievienota atstarpe, lai atdalītu ! un !!):

Kods

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

🦋 Pilnu kodu var atrast failā triple-negation.raku.

Izvade

Programma izdrukā apgrieztu Boolea vērtību, kā jūs droši vien gaidījāt:

$ raku triple-negation.raku
True

Komentāri

Bija nedaudz negaidīti, ka programma ar trim izsaukuma zīmēm nesakompilējās:

$ raku triple-negation.raku
===SORRY!=== Error while compiling /Users/ash/raku-course/exercises/booleans/triple-negation.raku
Two terms in a row
at /Users/ash/raku-course/exercises/booleans/triple-negation.raku:2
------> say !!!$value;
    expecting any of:
        infix
        infix stopper
        postfix
        statement end
        statement modifier
        statement modifier loop

Papildu atstarpe atrisina šo problēmu. Bet neiekļūstiet citā slazdā. Apsveriet šādu programmu:

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

Šī programma kompilējas, bet beidzas ar šādu ziņojumu:

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

Tas notiek tāpēc, ka !!! ir īpašs operators, kas apzīmē koda daļu kā pagaidu kodu. Ja programma sasniedz šo punktu, tā beidzas un izdrukā ziņojumu, kurā mūsu gadījumā bija mainīgā $value pašreizējā vērtība. Sīkāku informāciju skatiet 📖 dokumentācijā.

Kursa navigācija

Skaitļi / Operācijas ar skaitļiem   |   Diapazoni

Šī lapa ir automātiski tulkota ar ChatGPT 4o. Oriģinālais teksts angļu valodā.

Šīs lapas tulkojumi: EnglishDeutschEspañolItalianoLatviešuNederlandsБългарскиРусскийУкраїнська