Я запускаю воплощение tcl 8.5, встроенного в другую систему. Эта система будет принимать и правильно выполнить такую команду:Переменная замена в tcl
uniformDist minAndMax {1 10}
где uniformDist является какой-то объект, к которому у меня нет внутренней видимости.
Я хочу, чтобы иметь возможность сказать что-то вроде:
set M 1000
uniformDist minAndMax {1 M}
, но это не работает. также не множество М 1000 uniformDist minAndMax {1} $ M
Я пробовал:
u minAndMax {1 [eval $M]}
и
u minAndMax {1 [eval M]}
Ни одна из этих работ.
Сообщение об ошибке:
expected a real value: unable to convert from: "$M"Error: expected fewer arguments [Error while parsing pair]
или
expected a real value: unable to convert from: "[eval"Error: expected fewer arguments [Error while parsing pair]
Что такое правильный путь, что TCL делает это?
Вот оно! Благодаря! – elbillaf
Существует также '' 1 $ M "' и '[subst {1 $ M}]', но команда 'list' имеет наименьшие сюрпризы с помощью сложных подстановок. –
'' 1 $ M "' уже в тексте :) –