在 Tcl (proc) 的括号中使用 $variable

Using $variable in Parenthesis in Tcl (proc)

我在 tcl 中的部分代码是:

proc Frame {columnLine} {
.
.
.
}

现在我想在括号中使用 $variable。例如:

set x 2.
set columnLine {$x 5. 10. 15.}

但是,在 运行 Tcl 之后,我遇到了一个错误!我如何解决这个问题?

Tcl 不会对 {大括号} 中的内容进行替换。如果你想要替换,你必须 将整个单词放在 " 双引号 " 内,或者使用 subst 命令:

set x 2.
set columnLine [subst {$x 5. 10. 15.}]
set x 2.
set columnLine "$x 5. 10. 15."

使用 subst 的一个优点是您可以选择仅替换变量并单独保留反斜杠和 [ 方括号中的命令调用 ]。这有时确实很有用。

set x 2.
set columnLine [subst -nobackslashes -nocommands {$x 5. 10. 15.}]