我正在开发一个Tcl-Tk项目,并且有一些命名空间。但主要部分(主窗口和设置,影响整个程序)主要在全局命名空间中。我现在想知道全局命名空间中变量的最佳方法是什么:
proc TestVariable {} {
global MyVar
variable MyVar
...
}
当TestVariable
在全局命名空间中时,两种变体都会获得相同的结果。我对么?如果是这种情况,哪种变体更好用?
答案 0 :(得分:0)
您应该限制自己使用大量的全局变量。使用命名空间来定义变量总是一个好主意。
选中“http://tcl.tk/man/tcl8.5/tutorial/Tcl13.html”。这将为您提供一些见解,并检查“http://tcl.tk/man/tcl8.5/tutorial/Tcl31.html”以获取更多详细信息
答案 1 :(得分:0)
全局变量是全局命名空间中的命名空间变量。全局命名空间稍微有点特殊,因为它是默认情况下在其他命名空间中出现的地方;这是您想要的命令(以及您 真的 不希望变量的内容,这就是您应该使用variable
命令声明命名空间变量的原因)
通常,最好保留属于整个应用程序的东西的全局命名空间,并将任何具有更多限制适用性的东西放在其他命名空间中。如果您正在编写库代码,绝对将其放在命名空间中(通常与库包的名称相同)。这可以防止很多混乱。