如何将列表解压缩到Tcl中的变量?

时间:2010-07-22 15:40:05

标签: tcl

在Python中,我可以编写类似的内容:

my_list = [4, 7, "test"]
a, b, c = my_list

之后a4b7c"test",因为最后一行有解包操作。我可以做一些类似Tcl的最后一行吗?为了更清楚,我想要这样的东西:

set my_list {4 7 test}
setfromlist $mylist a b c

(即setfromlist将是我正在寻找的命令。)

1 个答案:

答案 0 :(得分:14)

你想要lassign:

% lassign
wrong # args: should be "lassign list ?varName ...?"
% lassign {1 2 3} a b c
% set a
1
% set b
2
% set c
3

如果您使用的是旧版本的Tcl(没有lassign),您可以使用foreach来获得相同的结果

foreach {a b c} {1 2 3} {break}