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
变量。)
我想在 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
变量。)