Курс по Raku / Основи / Булев тип / Упражнения / Тройно отрицание
Решение: Тройно отрицание
Програмата, показана в задачата, няма да се компилира и изисква малка корекция. Ето правилният и работещ вариант (добавено пространство за разделяне на !
и !!
):
Код
my $value = False;
say ! !!$value;
🦋 Можете да намерите пълния код във файла triple-negation.raku.
Резултат
Програмата отпечатва обърната булева стойност, както вероятно сте очаквали:
$ raku triple-negation.raku
True
Коментари
Беше малко неочаквано, че програмата с три удивителни знака не се компилира:
$ 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
Допълнителното пространство решава този проблем. Но не попадайте в друга клопка. Разгледайте следната програма:
my $value = False;
say !!! $value;
Тази програма се компилира, но завършва със следното съобщение:
$ raku triple-negation.raku
False
in block <unit> at exercises/booleans/triple-negation.raku line 2
Това се случва, защото !!!
е специален оператор за маркиране на част от кода като временен код. Ако програмата достигне до тази точка, тя се прекратява и отпечатва съобщението, което в нашия случай беше текущата стойност на променливата $value
. Вижте 📖 документацията за повече подробности.
Навигация по курса
← Числа / Операции с числа | Диапазони →
Тази страница е автоматично преведена с ChatGPT 4.0. Оригинален текст на английски
Преводи на тази страница: English • Deutsch • Español • Italiano • Latviešu • Nederlands • Български • Русский • Українська