В Tcl синтаксис {…}
технически означает «вообще не делать подстановок».Команда, в которую передается значение, может выполнять свои действия с этими символами, и эти вещи могут выглядеть очень похоже на подстановку (например, если она оценивает слово как скрипт, то есть для if
и for
иwhile
и ... делать), но основной синтаксис Tcl просто оставляет их в покое и пропускает их.
Чтобы получить то, что вы хотите, есть несколько альтернатив.Вы можете выполнить подстановки перед передачей значения - команда буквально не видит, что вы сделали это, если вы решите это сделать, или вы можете получить команду для подстановок (не очень полезное предложение, если оно третье -партийный код, конечно).
Чтобы сделать замены самостоятельно, вы можете сделать один из них:
interface code -clip [list $x1 $y1 $x2 $y2]
interface code -clip "$x1 $y1 $x2 $y2"
interface code -clip [subst {$x1 $y1 $x2 $y2}]
Первый вариантхорошо, если команда берет список (как выглядит ваш случай; он выглядит как список координат).Второй вариант хорош, если команда принимает строку.Третий вариант хорош, когда все усложняется!Обычно хорошей идеей является избегать очень сложных вещей;программы достаточно сложны для написания и чтения, без преднамеренного усложнения их понимания.