1. 检查variable变量是否声明
在使用Tcl时候会经常遇到no such variable的错误, 往往是由于访问不存在的变量导致的。
使用 [color=red]info exists[/color]来检查variable变量是否声明
如果是访问一个对象的变量,还需要先用instvar来绑定, 否则无法对正确的变量进行检查:
$self instvar varname_ #这里绑定self对象的变量
例:
如果绑定var_(INDEX)会导致无法绑定正确的变量, 因为不是要绑定array中的一个元素。
在使用Tcl时候会经常遇到no such variable的错误, 往往是由于访问不存在的变量导致的。
使用 [color=red]info exists[/color]来检查variable变量是否声明
如果是访问一个对象的变量,还需要先用instvar来绑定, 否则无法对正确的变量进行检查:
$self instvar varname_ #这里绑定self对象的变量
例:
$self instvar var_
if [info exists var_(INDEX)] {
# 访问self中的名为var_的array,之前要绑定var_, 而不是var_(INDEX)
# 因为var_(INDEX)是var_中的一个元素, 绑定var_才能访问
set newvar [$self set var_(INDEX)]
} else {
put "variable not exists"
}
如果绑定var_(INDEX)会导致无法绑定正确的变量, 因为不是要绑定array中的一个元素。