Tcl:生成循环 (*)

Tcl: Producing a Loop (*)

我想在 Tcl 中生成一个循环,如果 n=2 则创建:

set Beam_Gravity_Load [subst {$a $b}]

如果 n=3:

set Beam_Gravity_Load [subst {$a $a $b}]

如果 n=4:

set Beam_Gravity_Load [subst {$a $a $a $b}]

如果 n=5:

set Beam_Gravity_Load [subst {$a $a $a $a $b}]

等等。 "n" 总是大于 2。我该怎么办?!

您要查找的是 lrepeat{*} 的组合:

set Beam_Gravity_Load [list {*}[lrepeat [expr {$n-1}] $a] $b]

你也可以用 for:

set value {}
for {set i 1} {$i < $n} {incr i} {
    lappend value $a
}
lappend value $b
set Beam_Gravity_Load $value

(如果 Beam_Gravity_Load 变量不是 linked/traced,您可以避免额外的 value 变量。)