Tcl - Pacchetti

I pacchetti vengono utilizzati per creare unità di codice riutilizzabili. Un pacchetto è costituito da una raccolta di file che forniscono funzionalità specifiche. Questa raccolta di file è identificata da un nome di pacchetto e può avere più versioni degli stessi file. Il pacchetto può essere una raccolta di script Tcl, una libreria binaria o una combinazione di entrambi.

Il pacchetto utilizza il concetto di spazio dei nomi per evitare la collisione di nomi di variabili e nomi di procedure. Scopri di più nel nostro prossimo tutorial sullo " spazio dei nomi ".

Creazione del pacchetto

Un pacchetto può essere creato con l'aiuto di almeno due file. Un file contiene il codice del pacchetto. Altro file contiene il file del pacchetto di indice per dichiarare il pacchetto.

Di seguito è riportato l'elenco dei passaggi per la creazione e l'utilizzo del pacchetto.

FASE 1: creazione del codice

Crea il codice per il pacchetto all'interno di una cartella, ad esempio HelloWorld. Lascia che il file si chiami HelloWorld.tcl con il codice come mostrato di seguito -

# /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

PASSAGGIO 2: creazione dell'indice del pacchetto

Apri tclsh. Passa alla directory HelloWorld e utilizza il comando pkg_mkIndex per creare il file indice come mostrato di seguito -

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

PASSAGGIO 3: aggiunta di directory ad Autopath

Utilizzare il comando lappend per aggiungere il pacchetto all'elenco globale come mostrato di seguito -

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

FASE 4: aggiunta del pacchetto

Quindi aggiungi il pacchetto al programma usando l'istruzione package require come mostrato di seguito -

% package require HelloWorld 1.0

FASE 5: procedura di chiamata

Ora, tutto in fase di configurazione, possiamo richiamare la nostra procedura come mostrato di seguito -

% puts [HelloWorld::MyProcedure]

Otterrai il seguente risultato:

HelloWorld

I primi due passaggi creano il pacchetto. Una volta creato il pacchetto, puoi usarlo in qualsiasi file Tcl aggiungendo le ultime tre istruzioni come mostrato di seguito -

lappend auto_path "/Users/rajkumar/Desktop/helloworld"
package require HelloWorld 1.0
puts [HelloWorld::MyProcedure]

Otterrai il seguente risultato:

HelloWorld