Tcl中的info exists命令返回错误
我在itcl中编写了以下代码Tcl中的info exists命令返回错误,tcl,Tcl,我在itcl中编写了以下代码 if {[info exists ::xtg::triggers::match$arg]} { eval delete object ::xtg::triggers::match$arg } 这段代码应该检查是否存在一个名为::xtg::triggers::match$arg的对象,如果存在,则将其删除。 问题是我的shell中出现以下错误: 命名空间中已存在命令“match0”::xtg::Triggers 而不是“信息存在”命令手册中所述的1或0 如
if {[info exists ::xtg::triggers::match$arg]} {
eval delete object ::xtg::triggers::match$arg
}
这段代码应该检查是否存在一个名为::xtg::triggers::match$arg的对象,如果存在,则将其删除。
问题是我的shell中出现以下错误:
命名空间中已存在命令“match0”::xtg::Triggers
而不是“信息存在”命令手册中所述的1或0
如何解决此问题?检查现有变量,而不是命令(包括对象命令)
尝试:
您可能还想考虑Itcl的<代码>信息对象< /代码>:
if {::xtg::triggers::match$arg in [info objects]} {
# ...
}
或
(假设您调用[info objects]
以获得正确的命名空间范围)
if {::xtg::triggers::match$arg in [info objects]} {
# ...
}
if {[info objects ::xtg::triggers::match$arg] ne ""} {
# ...
}