Tcl - Paquetes

Los paquetes se utilizan para crear unidades de código reutilizables. Un paquete consta de una colección de archivos que proporcionan una funcionalidad específica. Esta colección de archivos se identifica mediante un nombre de paquete y puede tener varias versiones de los mismos archivos. El paquete puede ser una colección de scripts Tcl, una biblioteca binaria o una combinación de ambos.

El paquete utiliza el concepto de espacio de nombres para evitar la colisión de nombres de variables y nombres de procedimientos. Vea más en nuestro próximo tutorial de ' espacio de nombres '.

Creando paquete

Se puede crear un paquete con la ayuda de un mínimo de dos archivos. Un archivo contiene el código del paquete. Otro archivo contiene el archivo de paquete de índice para declarar su paquete.

La lista de pasos para crear y usar el paquete se proporciona a continuación.

PASO 1: Creación de código

Cree el código para el paquete dentro de una carpeta y diga HelloWorld. Deje que el archivo se llame HelloWorld.tcl con el código que se muestra a continuación:

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

PASO 2: Crear índice de paquetes

Abra tclsh. Cambie al directorio HelloWorld y use el comando pkg_mkIndex para crear el archivo de índice como se muestra a continuación:

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

PASO 3: Agregar directorio a Autopath

Use el comando lappend para agregar el paquete a la lista global como se muestra a continuación:

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

PASO 4: Agregar paquete

A continuación, agregue el paquete al programa utilizando la declaración de requerimiento del paquete como se muestra a continuación:

% package require HelloWorld 1.0

PASO 5: Procedimiento de invocación

Ahora, con todo lo que está configurado, podemos invocar nuestro procedimiento como se muestra a continuación:

% puts [HelloWorld::MyProcedure]

Obtendrá el siguiente resultado:

HelloWorld

Los primeros dos pasos crean el paquete. Una vez creado el paquete, puede usarlo en cualquier archivo Tcl agregando las últimas tres declaraciones como se muestra a continuación:

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

Obtendrá el siguiente resultado:

HelloWorld