【发布时间】:2013-08-09 17:34:04
【问题描述】:
我的程序中的一些变量名称是根据用户的输入构造的,因此它们可能包含任何符号。解释器将某些符号视为特殊符号,例如$,#, ...。通过在构造变量名称的开头添加左大括号并在其末尾添加右大括号来解决有关该符号的问题。但是现在当变量的名称包含大括号时,就会出现另一个问题。
set "a{}" text
puts $a{}
puts ${a{}}
没有一个在这里工作。如何打印变量a{} 的值,有没有已知的处理TCL 中特殊符号的方法?
【问题讨论】:
-
@JohannesKuhn,将其发布为答案
-
请注意,如果您经常这样做,这可能意味着您应该使用包含“奇怪字符”的名称作为数组元素的名称。
set ary(a{}) text; puts $ary(a{})