lappend 向元素添加花括号

lappend adds curly braces to the element

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

set element_name a[0]  
lappend mylist $element_name

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

{a[0]}

我如何去掉那些花括号?我只想要 a[0].

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

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

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

foreach elem $mylist {puts $elem}

列表的字符串表示需要引用包含对解释器重要的字符的元素 and/or 会干扰列表结构。括号(中间有一个脚本)通常被解释为命令替换,并且为了防止解释器对其进行评估,您的元素被包裹在大括号中。一旦列表元素转换为字符串,这就不再是问题,并且您存储在其中的文本也不再被包裹起来。

文档:foreach, join, puts