Уроки Tcl

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

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

Большинство задач компьютерного программирования заключается в манипуляции данными с помощью команд, и сохранении данных для того, чтобы в последующем использовать их в другой команде. В Tcl доступ к результату выполнения команды осуществляется заключением команды в квадратные скобки ([ ]).

В предыдущих уроках мы узнали, что Tcl читает строку и заменяет все $переменные их значениями.

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

Механизм заключается в том, что интерпретатор считает строку в квадратных скобках командой. А каждая команда обрабатывается в две фазы - подстановка и выполнение. Результат же выполнения подставляется на место команды в квадратных скобках.

Обратите внимание на третью строку в примере:

set y [set x "еклмн"]

Помните, что команда set возвращает значение, которое оно присвоило переменной. В этой команде set присваивает значение "еклмн" переменной x. При выполнение строки эта команда будет выполнена и вместо квадратных скобок будет новое значение переменной x. таким образом, строка примит вид:

set y "еклмн"

Данная команда будет выполнена и значение "еклмн" присвоится переменной y.

Из этого правила есть два исключения:

Выполните пример, и посмотрите как работают скобки и кавычки.

Пример:

set x "абв"
puts "Простая замена: $x\n"

set y [set x "еклмн"]
puts "Запомните, что set возвращает новое значение переменной: X: $x Y: $y\n"

set z {[set x "Эта строка в кавычках внутри квадратных скобок."]}
puts "Помните о фигурных скобках: $z\n"

set a "[set x {Эта строка в фигурных скобках внутри кавычек.}]"
puts "В данном случае команда set выполняется: $a"
puts "значение \$x : $x\n"

set b "\[set y {Эта строка в фигурных скобках внутри кавычек.}]"
puts "Помните, \\ обратная дробь отключает скобки:\nзначение \$b : $b"
puts "значение \$y : $y"

Следующий урок - #06: Математические вычисления - expr
Горбачев "Yurez" Юрий  
Хостинг от uCoz