- Tcl 教程
- Tcl - 首页
- Tcl - 概述
- Tcl - 环境设置
- Tcl - 特殊变量
- Tcl - 基本语法
- Tcl - 命令
- Tcl - 数据类型
- Tcl - 变量
- Tcl - 运算符
- Tcl - 决策
- Tcl - 循环
- Tcl - 数组
- Tcl - 字符串
- Tcl - 列表
- Tcl - 字典
- Tcl - 过程
- Tcl - 包
- Tcl - 命名空间
- Tcl - 文件 I/O
- Tcl - 错误处理
- Tcl - 内置函数
- Tcl - 正则表达式
- Tk 教程
- Tk - 概述
- Tk - 环境
- Tk - 特殊变量
- Tk - 小部件概述
- Tk - 基本小部件
- Tk - 布局小部件
- Tk - 选择小部件
- Tk - 画布小部件
- Tk - 超级小部件
- Tk - 字体
- Tk - 图像
- Tk - 事件
- Tk - 窗口管理器
- Tk - 几何管理器
- Tcl/Tk 有用资源
- Tcl/Tk - 快速指南
- Tcl/Tk - 有用资源
- Tcl/Tk - 讨论
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 HelloWorld $HelloWorld::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
广告