Tcl 按钮-for循环中的命令(无此类变量)

Tcl 按钮-for循环中的命令(无此类变量),tcl,Tcl,我在TCL中有一个小循环 for {set i 1} {$i <= $user} {incr i} { grid [ttk::button .seluser.$i -text "$i" -command { set ::user $i }] -column $i -row 1 } 对于{set i 1}{$i尝试使用引号而不是大括号,以便对$i进行预插值。例如 for {set i 1} {$i <= $user} {incr i} { grid [ttk::butt

我在TCL中有一个小循环

for {set i 1} {$i <= $user} {incr i} {
   grid [ttk::button .seluser.$i -text "$i" -command { set ::user $i }] -column $i -row 1
}

对于{set i 1}{$i尝试使用引号而不是大括号,以便对
$i
进行预插值。例如

for {set i 1} {$i <= $user} {incr i} {
    grid [ttk::button .seluser.$i -text "$i" -command " set ::user $i "] -column $i -row 1
} 

对于{set i 1}{$i,建议使用
list
来构造定义时间替换的命令,如下所示:
[list set::user$i]
。这是推荐的,因为它系统地保证了正确性(Tcl喜欢构建同样是无替换命令的列表)和更快的执行速度(基本上,这个值可以证明不需要解析)。讨论一下为什么引号而不是大括号起作用会更好