Поскольку число спецификаторов и аргументов для format
фиксировано, почему бы не использовать lassign
:
% lassign $t v1 v2 v3
% puts [format $f $v1 $v2 $v3]
aaa bbb ccc
В общем случае оператор расширения {*}
является целевым когда число спецификаторов, а следовательно, аргументов несколько динамично c. Но в случае со c вы получите более надежный скрипт при использовании lassign
. Представьте себе ваш список в t
разного размера, в то время как format
ожидает ровно три аргумента значения?