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

Ken*_*ber 1 tk-toolkit tcl

谁能告诉我下面的代码为什么不识别全局变量y?

proc add_new_seq {} {
global y 2
rid .kl15_val -row $y -column 4
incr y
}
add_new_seq
Run Code Online (Sandbox Code Playgroud)

Sch*_*ron 5

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

global y
set y 2
Run Code Online (Sandbox Code Playgroud)

但这将每次将变量重置为2。因此,您可能想要一些类似的东西:

set y 2
proc add_new_seq {} {
    global y
    rid .kl15_val -row $y -column 4
    incr y
}
add_new_seq
Run Code Online (Sandbox Code Playgroud)