Курс 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. Зверніться до 📖 документації для отримання
додаткової інформації.