1

我的程序中的一些变量名称是根据用户的输入构造的,因此它们可能包含任何符号。一些符号被解释器视为特殊符号,例如$,#, ...。通过在构造变量名称的开头添加左大括号并在其末尾添加右大括号来解决有关该符号的问题。但是现在当变量的名称包含大括号时会出现另一个问题。

set "a{}" text

puts $a{}
puts ${a{}}

没有一个在这里工作。如何打印变量的值,a{}是否有任何已知的方法来处理 TCL 中的特殊符号?

4

1 回答 1

5

手册

请注意,变量可能包含上面列出的字符序列以外的字符序列,但在这种情况下,必须使用其他机制来访问它们(例如,通过set命令的单参数形式)。

利用set

puts [set "a{}"]

$路是受限制的,set不是

于 2013-08-09T19:23:56.287 回答