Подстановка переменных в TCL внутри фигурной скобки - PullRequest
0 голосов
/ 28 сентября 2018

Я пытаюсь выполнить подстановку переменных в фигурных скобках, что, как я понимаю, неосуществимо непосредственно в TCL.

Код, который я пытаюсь:

interface code -clip {$x1 $y1 $x2 $y2}

Код интерфейса являетсясторонняя функция TCL, у которой есть опция clip, которая считывает координаты x1, y1, x2, y2 в фигурных скобках.

Мне нужно ввести значения x1, y2 в фигурных скобках.

1 Ответ

0 голосов
/ 29 сентября 2018

В 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}]

Первый вариантхорошо, если команда берет список (как выглядит ваш случай; он выглядит как список координат).Второй вариант хорош, если команда принимает строку.Третий вариант хорош, когда все усложняется!Обычно хорошей идеей является избегать очень сложных вещей;программы достаточно сложны для написания и чтения, без преднамеренного усложнения их понимания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...