Tcl - Pakiety

Pakiety służą do tworzenia jednostek kodu wielokrotnego użytku. Pakiet składa się z kolekcji plików, które zapewniają określoną funkcjonalność. Ta kolekcja plików jest identyfikowana przez nazwę pakietu i może mieć wiele wersji tych samych plików. Pakiet może być zbiorem skryptów Tcl, biblioteką binarną lub kombinacją obu.

Pakiet używa koncepcji przestrzeni nazw, aby uniknąć kolizji nazw zmiennych i nazw procedur. Więcej informacji znajdziesz w następnym samouczku dotyczącym przestrzeni nazw .

Tworzenie pakietu

Pakiet można stworzyć przy pomocy minimum dwóch plików. Jeden plik zawiera kod pakietu. Inny plik zawiera plik pakietu indeksowego do deklarowania pakietu.

Lista kroków tworzenia i używania pakietu znajduje się poniżej.

KROK 1: Tworzenie kodu

Utwórz kod dla pakietu w folderze, powiedz HelloWorld. Niech plik zostanie nazwany HelloWorld.tcl z kodem pokazanym poniżej -

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

KROK 2: Tworzenie indeksu pakietów

Otwórz tclsh. Przejdź do katalogu HelloWorld i użyj polecenia pkg_mkIndex, aby utworzyć plik indeksu, jak pokazano poniżej -

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

KROK 3: Dodawanie katalogu do Autopath

Użyj polecenia lappend, aby dodać pakiet do listy globalnej, jak pokazano poniżej -

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

KROK 4: Dodawanie pakietu

Następnie dodaj pakiet do programu za pomocą instrukcji pakiet wymagają, jak pokazano poniżej -

% package require HelloWorld 1.0

KROK 5: Wywołanie procedury

Teraz, gdy wszystko jest konfigurowane, możemy wywołać naszą procedurę, jak pokazano poniżej -

% puts [HelloWorld::MyProcedure]

Otrzymasz następujący wynik -

HelloWorld

Pierwsze dwa kroki tworzą pakiet. Po utworzeniu pakietu możesz go użyć w dowolnym pliku Tcl, dodając trzy ostatnie instrukcje, jak pokazano poniżej -

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

Otrzymasz następujący wynik -

HelloWorld