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

Mic*_*ael 5 tcl

在Python中我可以写如下:

my_list = [4, 7, "test"]
a, b, c = my_list
Run Code Online (Sandbox Code Playgroud)

在这之后a4,b7c"test"因为在最后一行的解压缩操作.我可以做一些类似Tcl的最后一行吗?为了使它更清楚,我想要这样的东西:

set my_list {4 7 test}
setfromlist $mylist a b c
Run Code Online (Sandbox Code Playgroud)

(即setfromlist我正在寻找的命令.)

RHS*_*ger 15

你想要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
Run Code Online (Sandbox Code Playgroud)

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

foreach {a b c} {1 2 3} {break}
Run Code Online (Sandbox Code Playgroud)