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步:建立包INDEX

開啟tclsh。切換到HelloWorld目錄,並使用pkg_mkIndex命令建立索引檔案,如下圖所示。

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

第三步:新增目錄到AUTOPATH

使用lappend命令來新增程式包到全域性列表如下所示。

% lappend auto_path "/Users/rajkumar/Desktop/helloworld"

步驟4:新增軟體包

接下來新增程式包使用程式包程式設計要求宣告如下所示。

% 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