Уроки Tcl

Начало Уроки Tk Файлы
Статьи Уроки Tcl Гостевая книга
Предыдущий урок - #02: Присвоение значений переменным

#03: Обработка и подстановка при группировке с помощью " "

Этот урок - первый из трёх, которые описывают как Tcl производит подстановку при обработке команды.

В Tcl обработка команды происходит в две фазы: фаза подстановки и фаза выполнения.

В фазе подстановки происходит большинство работы в Tcl программе. Интерпретатор просматривает каждое слово слева направо и, когда находится слово, которое должно быть заменено другим значением, он производит подстановку. Во время фазы выполнения компилятор обрабатывает команду и выполняет действия, указанные в команде.

Помните, что только подстановка происходит только один раз.

Интерпретатор Tcl производит следующие подстановки:

Слова в двойных кавычках или фигурных скобках обрабатываются как один аргумент. Однако, двойные кавычки и фигурные скобки действуют по-разному в фазе подстановки. В этом уроке разберём действие двойных кавычек в фазе подстановки.

Объединение слово в двойных кавычка позволяет делать замены во время фазы подстановки. Поэтому команда

puts "Текущее значение переменной - $имяПеременной"

заменит имя переменной на её значение и выведет всю строку.

Исключение делается для символов после обратной дроби (\), как и описано ранее. Обратная дробь отменяет подстановку для следующего символа. Это даёт возможность выводить специальные символы - $, ", [, ], {, }, \.

Запустите пример на интерпретаторе, проверьте выводимый результат. Поэксперементируйте с кодом примера и переходите к следующему заданию.

Пример:

# Пример действия \ на символ $
set Z "Москва"
set Z_LABEL "Столица России это: "

puts "$Z_LABEL $Z"
puts "$Z_LABEL \$Z"

# В следующей строке не хватает \ перед $
puts "\nБен Франклин изображен на купюре $100.00"

set a 100.00
puts "Вашингтона нет на купюре $a" ;# Это не то
puts "Линкольна нет на купюре $$a" ;# Это правильно
puts "Гамильтона нет на купюре \$a" ;# Опять не то
puts "Бен Франклин на купюре \$$a"    ;# Но вот так правильно

puts "\n................. примеры специальных символов"
puts "Табуляция\tТабуляция\tТабуляция"
puts "Эта строка будет выведена\nна двух линиях"
puts "А эта строка выведется\
на одной линии"

Следующий урок - #04: Обработка и подстановка при группировке с помощью { }
Горбачев "Yurez" Юрий  
Хостинг от uCoz