Tcl 包

Tcl 包

包用于创建可重用的代码单元。包由一组提供特定功能的文件组成。这些文件的集合由包名称标识,并且可以具有相同文件的多个版本。包可以是Tcl脚本的集合,二进制库,或者二者的组合。

包使用命名空间的概念来避免变量名和过程名的冲突。查看下一个“命名空间”教程以获取更多信息。

创建包

使用至少两个文件可以创建包。一个文件包含包的代码。另一个文件包含用于声明包的索引包文件。

以下是创建和使用包的步骤列表。

步骤1:创建代码

在一个名为HelloWorld的文件夹中创建包的代码。让文件命名为HelloWorld.tcl,代码如下所示 −

# /Users/rajkumar/Desktop/helloworld/HelloWorld.tcl 
# Create the namespace
namespace eval ::HelloWorld {

  # Export MyProcedure
  namespace export MyProcedure

  # My Variables
   set version 1.0
   set MyDescription "HelloWorld"

  # Variable for the path of the script
   variable home [file join [pwd] [file dirname [info script]]]

}

# Definition of the procedure MyProcedure
proc ::HelloWorld::MyProcedure {} {
   puts HelloWorld::MyDescription
}

package provide HelloWorldHelloWorld::version
package require Tcl 8.0

步骤2:创建软件包索引

打开tclsh。切换到HelloWorld目录,使用pkg_mkIndex命令创建索引文件,如下所示−

% cd /Users/rajkumar/Desktop/helloworld 
% pkg_mkIndex . *.tcl

步骤3:将目录添加到Autopath

使用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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程