任何人都可以帮助我理解TCL中的“包忘记”命令。
TCL手册说明了
package forget ?package package ...?
从此解释器中删除有关每个指定包的所有信息,包括package ifneeded
和package provide
提供的信息。
根据我的理解,在针对特定包上执行package forget命令之后,不应该执行该包中可用的命令。
是这样的吗?
还请解释package unknown
命令?
答案 0 :(得分:3)
Tcl包机制很简单:
当你package require SomePackage
时,Tcl会查看它是否知道该包的内容。
package provide
),则只返回版本号。package ifneeded
)它将执行该脚本,进行一些检查(应该加载包,版本必须匹配... )并返回版本。package unknown
,它知道如何找到包并为每个找到的包调用package ifneeded
。 package forget
只会清除package provide
和package ifneeded
提供的所有信息。该包的实际命令不会被删除。