为什么在包中使用带有空括号的命名空间

时间:2012-03-01 08:59:32

标签: tcl

我正在使用TEX包。

package require ABC
package provide TEX 1.0

namespace eval ::65FGA {

}

proc ::65FGA::runSuite {{setupFile ""} args} {
Proc body
proc body
}

我不知道为什么使用带空括号的命名空间..

2 个答案:

答案 0 :(得分:5)

这可能只是风格问题:

namespace eval ::my_namespace {}
proc ::my_namespace::procname {} {...}

namespace eval ::my_namespace {
    proc procname {} {...}
}

答案 1 :(得分:3)

你的意思是

namespace eval ::65FGA {

}

位?

This command只创建一个命名空间“65FGA”,然后eval创建一个空字符串(如果这对你来说更合理,则为空脚本)。结果,创建了所述命名空间,但它还没有包含任何内容。

在这段代码中,您可以删除正在讨论的命令调用,它不会影响任何内容。因此很可能它用于叙述目的,明确表示包正在创建所述命名空间(它是然后填充一个proc ed {/ p>

更新:深入了解虚假陈述(感谢Eric Melski)。实际上,在尝试在其中创建任何内容之前,命名空间必须存在(通过procset命令)。