我想了解 tcl 中的模块化编程以及我们如何实现这一点。
在一些 tcl 教程中提到类似 source 命令在实现“模块化”方面有一些缺点,所以我们来到“包”之后,“包”有更多缺点,所以我们结合了包和命名空间。
我想知道 3 个概念的缺点和适当的层次结构。谁能帮我 ?
我想了解 tcl 中的模块化编程以及我们如何实现这一点。
在一些 tcl 教程中提到类似 source 命令在实现“模块化”方面有一些缺点,所以我们来到“包”之后,“包”有更多缺点,所以我们结合了包和命名空间。
我想知道 3 个概念的缺点和适当的层次结构。谁能帮我 ?
我不确定我是否正确理解了您的问题,因此我将尝试解释您在问题中提出的 3 个命令:
source
: 将文件评估为 Tcl 脚本。- 它只是打开文件,读取到 EOF 字符(^Z
在 windows 和 *nix 上)并评估它。package
: 管理包。它基本上跟踪提供的包并试图找出它必须获取哪个文件来加载新包。namespace
:它们为命令和变量提供上下文,因此您不必担心命令的唯一名称。只是名称空间必须是唯一的。与加载包或其他模块无关,它只是提供命名空间。我建议你使用包,每个包都在它自己的文件中,每个包的命名空间等于所有命令所在的包名。
您应该使用 导出公共命令namespace export
。