Как распаковать список в переменные в Tcl? - PullRequest
4 голосов
/ 22 июля 2010

В Python я могу написать что-то вроде:

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

После этого a равно 4, b равно 7 и c равно "test" из-за операции распаковки в последней строке. Могу ли я сделать что-то вроде последней строки в Tcl? Чтобы было понятнее, я хочу что-то вроде этого:

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

(т. Е. setfromlist - это команда, которую я ищу.)

1 Ответ

14 голосов
/ 22 июля 2010

Вы хотите 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}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...