Tcl-tk-tcl-packages
Tcl-パッケージ
パッケージは、再利用可能なコード単位を作成するために使用されます。 パッケージは、特定の機能を提供するファイルのコレクションで構成されています。 このファイルのコレクションはパッケージ名で識別され、同じファイルの複数のバージョンを持つことができます。 パッケージは、Tclスクリプトのコレクション、バイナリライブラリ、または両方の組み合わせにすることができます。
パッケージは、名前空間の概念を使用して、変数名とプロシージャ名の衝突を回避します。 次の「link:/tcl-tk/tcl_namespaces [namespace]」チュートリアルで詳細を確認してください。
パッケージ作成
パッケージは、最低2つのファイルを使用して作成できます。 1つのファイルにはパッケージコードが含まれています。 他のファイルには、パッケージを宣言するためのインデックスパッケージファイルが含まれています。
パッケージを作成および使用するための手順のリストを以下に示します。
ステップ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:自動パスへのディレクトリの追加
以下に示すように、グローバルリストにパッケージを追加するには、lappendコマンドを使用します-
% lappend auto_path "/Users/rajkumar/Desktop/helloworld"
ステップ4:パッケージの追加
次に、以下に示すようにpackage requireステートメントを使用してプログラムにパッケージを追加します-
% package require HelloWorld 1.0
ステップ5:手順の呼び出し
今、すべてがセットアップされているので、以下に示すようにプロシージャを呼び出すことができます-
% puts [HelloWorld::MyProcedure]
次の結果が得られます-
HelloWorld
最初の2つのステップでパッケージを作成します。 パッケージが作成されたら、以下に示すように最後の3つのステートメントを追加することにより、Tclファイルで使用できます-
lappend auto_path "/Users/rajkumar/Desktop/helloworld"
package require HelloWorld 1.0
puts [HelloWorld::MyProcedure]
次の結果が得られます-
HelloWorld