UR4QTP: записная книжка 

Программирование на Tcl/Tk. Мой конспект

Скобки

Скобки постоянно применяются в Tcl-программах, поэтому я о них и пишу в самом начале.

Применяются три вида скобок: " ", { } и [ ].

Двойные кавычки " " и фигурные скобки { } позволяют указывать в команде параметр, содержащий в себе несколько слов. При этом двойные кавычки разрешают подстановку, а фигурные скобки – нет. Лучше всего это показать на примере.

Применение кавычек и фигурных скобок

Команда set присваивает переменной dn значение понедельник.

К значению переменной можно обратиться при помощи символа $.

С помощью команды puts я хочу напечатать фразу Сегодня - понедельник. Как видим, без кавычек и скобок это приводит к ошибке, поскольку все слова трактуются каждый сам по себе, а не как один параметр.

Заключаем нужные слова в двойные кавычки. В результате они трактуются как один параметр – то, что и нужно напечатать. При этом интерпретатор осуществляет подстановку значения переменной – вместо символов $dn печатается слово понедельник. Применение вместо двойных кавычек фигурных скобок приводит к «дословному» выводу – значение переменной не подставляется, а обращение к ней трактуется просто как набор символов.


Комбинация кавычек и фигурных скобок

Скомбинировать в одной команде два вида скобок не получится. Двойные кавычки внутри фигурных скобок теряют своё значение и становятся простым символом. И наоборот. Как добиться в данном примере нужного эффекта, показывает последняя команда. Опция -nonewline запрещает первой команде puts выводимую строку завершать символом новой строки (что делается по умолчанию), после чего вторая команда puts просто продолжает вывод в той же строке.


Квадратные скобки

Квадратные скобки [ ] служат для подстановки результатов выполнения команд. Интерпретатор в процессе подстановки заменяет квадратные скобки и содержащееся в них выражение результатом выполнения этого самого выражения. Если имеется несколько таких выражений в квадратных скобках, они обрабатываются слева направо. В примере слева последняя команда выполняется так: сначала команда set dn среда выдаёт результат среда, после чего команда puts среда выдаёт также слово среда. Возможно, не самый лучший пример, но описывать новые команды, которые бы сделали пример более наглядным, «впереди паровоза» тоже не хочется. Если придумаю лучший пример, исправить никогда не поздно :-).



 UR4QTP: записная книжка