Zmienne lokalne i globalne

<< Kliknij, aby wyświetlić Spis treści >>

Nawigacja:  Dodatki > TCL > Procedury >

Zmienne lokalne i globalne

Gdy interpretowane jest ciało procedury Tcl, korzysta ono z innego zestawu zmiennych niż skrypt z którego procedura została wywołana. Takie zmienne nazywane są zmiennymi lokalnymi, ponieważ są one dostępne jedynie wewnątrz procedury i są usuwane gdy procedura kończy wykonanie. Zmienne dostępne poza procedurami są zmiennymi globalnymi. Dopuszczalna jest sytuacja, w której istnieje zmienna lokalna w aktualnie wykonywanej procedurze oraz zmienna globalna o tej samej nazwie, są to jednak różne zmienne, zmiana wartości jednej z nich nie wpływa na drugą. Jeśli procedura jest wywoływana rekurencyjnie, to każde kolejne wywołanie tworzy własny zestaw zmiennych lokalnych.

Argumenty procedury są zmiennymi lokalnymi, których wartości są tworzone ze słów polecenia wywołującego procedurę. W chwili rozpoczęcia wykonania procedury jedynymi zmiennymi lokalnymi posiadającymi wartości są właśnie argumenty. Pozostałe zmienne lokalne są tworzone w momencie ich pierwszego użycia.

Procedury mogą korzystać ze zmiennych globalnych przy pomocy polecenia global. Np. poniższy przykład udostępnia zmienne globalne x i y wewnątrz procedury:

global x y

Polecenie global traktuje każdy ze swoich argumentów jako zmienną globalną i powoduje, że referencje do tych zmiennych wewnątrz procedury zostaną przekierowane do zmiennych globalnych a nie lokalnych. Polecenie global może być wywołane w każdym miejscu procedury, ustawione przekierowanie obowiązuje do zakończenia wykonania procedury.