一个字符串转换为一个嵌套TCL列表
问题描述:
请参见下面的代码:一个字符串转换为一个嵌套TCL列表
> foreach a {k l { jo k } {jo i } k } { puts $a}
k
l
jo k
jo i
k
的问题是,如果我得到它具有列表的字符串表示的字符串会发生什么:
> foreach a "{k l { jo k } {jo i } k }" { puts $a}
k l { jo k } {jo i } k
我怎样才能串"{k l { jo k } {jo i } k }"
转换为一个列表,它是相同的:{k l { jo k } {jo i } k }
使用SUBST和eval,但没有奏效。
谢谢。
答
该字符串看起来是拿着名单,所以让我们尝试lindex
...
% foreach a [lindex "{k l { jo k } {jo i } k }" 0] { puts $a}
k
l
jo k
jo i
k
答
的"splat" operator工程太:
% foreach a "{k l { jo k } {jo i } k }" { puts $a}
k l { jo k } {jo i } k
% foreach a {*}"{k l { jo k } {jo i } k }" { puts $a}
k
l
jo k
jo i
k
感谢。有用。 – user1134991