0

tcl でのモジュラー プログラミングと、それを実現する方法について知りたいです。

一部の tcl チュートリアルでは、「モジュール性」を実現する上でいくつかの欠点がある source コマンドのように言及しているため、その「パッケージ」にはさらにいくつかの欠点があるため、「パッケージ」と名前空間の組み合わせである「パッケージ」にたどり着きました。

3 つの概念の欠点と適切な階層を知りたいです。誰でも私を助けることができますか?

4

1 に答える 1

1

あなたの質問を正しく理解しているかどうかわからないので、質問で投げた3つのコマンドを説明しようとします:

  • source: ファイルを Tcl スクリプトとして評価します。- 単純にファイルを開き、EOF 文字 ( ^ZWindows と *nix の両方) まで読み取り、それを評価します。
    ソース化されたファイルを追跡しないため、同じファイルを再度ソース化できます (ホットパッチに最適) が、これは欠点です: ファイルを再度ソース化します。
  • package: パッケージを管理します。基本的に、提供されたパッケージを追跡し、新しいパッケージをロードするために必要なファイルを見つけようとします。
  • namespace: コマンドと変数のコンテキストを提供するため、コマンドの一意の名前について心配する必要はありません。名前空間だけが一意である必要があります。パッケージや他のモジュールのロードとは関係なく、名前空間を提供するだけです。

パッケージを使用することをお勧めします。各パッケージは独自のファイルにあり、各パッケージにはすべてのコマンドが存在するパッケージ名と同じ名前空間があります。
で公開コマンドをエクスポートする必要がありますnamespace export

于 2013-09-12T06:47:33.143 に答える