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