包(Packages)用于创建可重用的代码单元,使用命名空间的概念来避免变量名和过程名的冲突。在无涯教程的下一章" 命名空间" 教程中进一步了解。
创建包(Packages)
可以使用最少两个文件创建一个包,一个文件包含代码,其他文件包含索引程序包文件。
下面给出了创建和使用包的步骤列表。
步骤1 : 创建代码
在名为HelloWorld的文件夹中为包创建代码。让文件命名为HelloWorld.tcl,其代码如下所示-
# /Users/rajkumar/Desktop/helloworld/HelloWorld.tcl # 创建命名空间 namespace eval ::HelloWorld { # 导出我的程序 namespace export MyProcedure # 变量 set version 1.0 set MyDescription "HelloWorld" # 脚本路径的变量 variable home [file join [pwd] [file dirname [info script]]] } # MyProcedure 过程的定义 proc ::HelloWorld::MyProcedure {} { puts $HelloWorld::MyDescription } package provide HelloWorld $HelloWorld::version package require Tcl 8.0
步骤2 : 创建包索引
打开tclsh。切换到HelloWorld目录,并使用pkg_mkIndex命令创建索引文件,如下所示-
% cd /Users/rajkumar/Desktop/helloworld % pkg_mkIndex . *.tcl
步骤3 : 添加到自动路径
使用lappend命令将软件包添加到全局列表,如下所示-
% lappend auto_path "/Users/rajkumar/Desktop/helloworld"
步骤4 : 加载包
接下来使用package require语句将包添加到程序中,如下所示-
% package require HelloWorld 1.0
步骤5 : 调用程序
现在,一切都已设置完毕,如下所示:
% puts [HelloWorld::MyProcedure]
您将获得以下输出-
HelloWorld
前两个步骤创建了包。创建包后,可以通过添加最后三个语句在任何Tcl文件中使用它,如下所示-
lappend auto_path "/Users/rajkumar/Desktop/helloworld" package require HelloWorld 1.0 puts [HelloWorld::MyProcedure]
您将获得以下输出-
HelloWorld
参考链接
https://www.learnfk.com/tcl-tk/tcl-packages.html
标签:MyProcedure,package,创建,无涯,HelloWorld,Tcl,步骤,tcl,Packages From: https://blog.51cto.com/u_14033984/8519686