Основные понятия и элементы


Операторы

        Действующие операторы перечислены ниже в порядке убывания приоритетности исполнения.

-
        Унарный минус

+
        Унарный плюс

~
        Побитовое неравенство NOT

!
        Логическое NOT

        Ни один из этих операторов не может быть использован со строковыми операндами, а побитовое NOT может использоваться только с целыми числами.

*
        Умножить

/
        Разделить

%
        Остаток деления

        Ни один из этих операторов не может быть использован со строковыми операндами, а оператор остатка может использоваться только для целых чисел.

+ -
        Сложение и вычитание

        Могут использоваться для любых числовых операндов.

<< >>
        Сдвиг влево и вправо. Операторы можно использовать только с целыми числами. Сдвиг вправо также сдвигает и знаковый бит.

< > <= >=
        Операторы булевой алгебры: меньше, больше, не больше, не меньше. Каждый оператор дает результат 1, если неравенство верно, и 0 — в обратном случае. Кроме числовых операндов, операторы можно применять для строковых выражений, в этом случае выполняется сравнение строк.

== !=
        Булевские операторы: равно и не равно. Результат операции — число 0 или 1. Операторы можно применять с любыми аргументами.

&
        Оператор побитового AND. Используется только с целыми операндами.

^
        Оператор побитового исключающего OR. Применяется только с целыми числами.

|
         Оператор побитового OR. Применяется только с целыми числами.

&&
        Оператор логического AND. Результат равен 1, если оба операнда равны 1, и 0 — в обратном случае. Операндами могут быть любые числа, как целые, так и с плавающей запятой.

||
         Оператор логического OR. Результат равен 0, если оба операнда равны 0, и 1 — в обратном случае. Операндами могут быть любые числа, как целые, так и с плавающей запятой.

        x?y:z

        Конструкция if-then-else, подобная аналогичной конструкции в языке С. Операнд х должен иметь числовое значение. Если значение х не равно нулю, то результат команды будет у. В обратном случае результат будет z.

        Операторы одного уровня приоритета исполнения выполняются по очереди, слева направо. Например, команда:

        ехрг 4*2 < 7

возвращает результат 0.

        Подобно языку С, операторы &&, || и ?: имеют свойство «ленивого вычисления», т.е., если операнд не нужен для получения результата, то он не вычисляется. Например, в команде:

        ехрг {$v? [а] : [b]}

будет вычислено только одно из выражений [а] и [b], в зависимости от значения $v. Однако, это справедливо только тогда, когда все выражение заключено в фигурные скобки. В противном случае анализатор Tcl сначала вычислит [а] и [b], и только потом вызовет команду ехрr.
Hosted by uCoz