【问题标题】:TCL: How to create and use variable with names containing curly braces?TCL:如何创建和使用名称包含大括号的变量?
【发布时间】:2013-08-09 17:34:04
【问题描述】:

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

set "a{}" text

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

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

【问题讨论】:

  • @JohannesKuhn,将其发布为答案
  • 请注意,如果您经常这样做,这可能意味着您应该使用包含“奇怪字符”的名称作为数组元素的名称。 set ary(a{}) text; puts $ary(a{})

标签: tcl special-characters


【解决方案1】:

来自manual

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

使用set

puts [set "a{}"]

$ 方式是restrictedset 不是

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-18
    • 2016-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-07
    相关资源
    最近更新 更多