lappend为元素添加花括号

时间:2015-07-03 23:32:55

标签: tcl

我在脚本中使用lappend,做这样的事情:

set element_name a[0]  
lappend mylist $element_name

我看到如果$element_name中包含[],例如a[0]lappend为它添加花括号。就像我打印$mylist一样,它会给出:

{a[0]}

我如何摆脱那些花括号?我只想要a[0]

1 个答案:

答案 0 :(得分:1)

如果使用join将列表转换为字符串,则大括号会消失:

puts [join $mylist]
# => a[0]

或者如果您单独打印元素:

foreach elem $mylist {puts $elem}

列表的字符串表示需要引用包含对解释器有意义和/或干扰列表结构的字符的元素。括号(在它们之间有一个脚本)通常被解释为命令替换,并且为了防止解释器对其进行评估,您的元素被包装在大括号中。将列表元素转换为字符串后,这将不再是一个问题,您存储在其中的文本将不再被包裹。

文档:foreachjoinputs