Tcl 使用一个列表作为多变量,例如格式参数
在Tcl 我知道它不正确,它将返回错误: 论据不足 那么如何纠正呢?您可以使用(从Tcl 8.5开始):Tcl 使用一个列表作为多变量,例如格式参数,tcl,Tcl,在Tcl 我知道它不正确,它将返回错误: 论据不足 那么如何纠正呢?您可以使用(从Tcl 8.5开始): 在以前的版本中,您必须使用eval,这是不推荐的 set f "%-3s %-3s %-3s" set t {"aaa" "bbb" "ccc"} puts [format $f {*}$t] 由于格式的说明符和参数的数量是固定的,为什么不使用: 通常,当说明符的数量以及参数多少是动态的时,扩展运算符{*}是有目的的。但是在静态情况下,当使用lassign时,您将得到一个更健壮的脚本。在
在以前的版本中,您必须使用eval,这是不推荐的
set f "%-3s %-3s %-3s"
set t {"aaa" "bbb" "ccc"}
puts [format $f {*}$t]
由于
格式
的说明符和参数的数量是固定的,为什么不使用:
通常,当说明符的数量以及参数多少是动态的时,扩展运算符{*}
是有目的的。但是在静态情况下,当使用lassign
时,您将得到一个更健壮的脚本。在t
中描绘列表的大小变化,而format
只需要三个值参数
set f "%-3s %-3s %-3s"
set t {"aaa" "bbb" "ccc"}
puts [format $f {*}$t]
puts [eval format \$f $t]
% lassign $t v1 v2 v3
% puts [format $f $v1 $v2 $v3]
aaa bbb ccc