Курс Раку / Основи / Логічний тип / Вправи / Потрійне заперечення

Рішення: Потрійне заперечення

Програма, показана в завданні, не компілюється і потребує невеликого виправлення. Ось правильний і робочий варіант (додано пробіл для розділення ! і !!):

Код

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 4o. Оригінальний текст англійською мовою.

Переклади цієї сторінки: EnglishDeutschEspañolItalianoLatviešuNederlandsБългарскиРусскийУкраїнська