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


Выражения

        Вторая смысловая форма строк в Tcl — это выражения. Несколько команд, таких как expr, for и if, считают один или несколько своих аргументов выражениями и для вычисления их значения вызывают процессоры выражений Tcl (Tcl_ExprLong, Tcl_ExprBoolean и т.д.). Разрешенные в Tcl-выражениях операторы составляют подмножество операторов, разрешенных в выражениях С, и они имеют такой же смысл и приоритет выполнения, как и соответствующие им операторы С. Почти всегда значением выражения является число (целое или с плавающей запятой). Например, выражение:

        8.2 + 6

дает результат 14,2. Выражения Tcl отличаются от выражений С способом описания операндов, а также тем, что поддерживают нечисловые операнды и сравнение строк.

        Выражение Tcl состоит из комбинации операндов, операторов и скобок. Между ними всеми можно ставить пробелы, потому что при вычислении значения пробелы игнорируются. По возможности, все операнды интерпретируются как целые числа, если не задано иное. Целые числа могут иметь вид десятичного числа (обычно), восьмеричного (если первая цифра числа есть 0) или шестнадцатеричного (если первые два символа числа — 0х). Если операнд не подпадает ни под один из названных форматов, он считается числом с плавающей запятой, если это возможно. Числа с плавающей запятой можно задавать любым из способов, воспринимаемым совместимым с ANSI компилятором С. Исключение составляет запрет в большинстве версий на суффиксы f, F, 1, и L. Примеры правильных чисел с плавающей запятой: 2.1, 3., 6е4, 7.91е+16. Если числовая

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

        Операнды могут быть заданы одним из следующих способов:         Если в выражении имели место подстановки (например, внутри двойных кавычек), то они будут обработаны процессором выражения. Хотя анализатор команд тоже может выполнить свою часть подстановок (дополнительную серию подстановок) до вызова процессора выражения. Поэтому обычно, во избежание выполнения анализатором команд подстановок в содержимое выражения, лучше всего заключать выражение в фигурные скобки.

        В качестве примеров рассмотрим простые выражения, в которых переменная а имеет значение 3, а значение переменной b есть 6. Тогда выражение в левой части каждой строки даст значение в ее правой части:

        3.1 + $а 6.1

        2 + " $а.$b" 5.6

        4*[llength " 6 2" ] 8

        {word one} < " word $a" 0
Hosted by uCoz