Statický rámec

From perl6.cz

Statický rámec nebo také lexikální rámec (lexical scope v angličtině) je kontext ve kterém hodnoty a výrazy asociovány staticky. V Perlu jsou statické (lexical) proměnné deklarovány pomocí klíčového slova my.

Příklad statického rámce (lexical scope) proměnné.

$x = 0;
sub f { return $x; }
sub g { my $x = 1; return f(); }
print g()."\n";

Příklad ukazuje použití "my" pro definování proměnné $x ve funkci g staticky. Zavolání funkce g ve výše uvedeném kódu vrací 0, protože funkce f nemůže vidět staticky definovanou proměnnou $x z funkce f a proto použije globální proměnnou $x.

$x = 0;
sub f { return $x; }
sub g { local $x = 1; return f(); }
print g()."\n";

Ve druhém příkladě je ve funkci g použito klíčové slovo local pro definovování proměnné $x dynamicky. Nyní po zavolání funkce g dostaneme 1, protože funkce f vidí lokální proměnnou $x funkce g na jejímž vrcholu běhového zásobníku je hodnota 1.

Externí odkazy

Personal tools
Language