在过程中声明时无法识别全局变量

global variable not recognised when declared in procedure

谁能告诉我为什么全局变量 y 在下面的代码中没有被识别?

proc add_new_seq {} {
global y 2
rid .kl15_val -row $y -column 4
incr y
}
add_new_seq

命令"global y 2"声明了2个全局变量,分别命名为y和2(是的,在Tcl中2是一个完全有效的变量名)。这两个变量都还没有值。您可能有意:

global y
set y 2

但是每次都会将变量重置为 2。所以你可能想要类似的东西:

set y 2
proc add_new_seq {} {
    global y
    rid .kl15_val -row $y -column 4
    incr y
}
add_new_seq