Raku-Kurs / Grundlagen / Grundlagen des Kontrollflusses / Codeblöcke

Lexikalischer Gültigkeitsbereich

Ein Codeblock erstellt einen sogenannten lexikalischen Geltungsbereich. Variablen, die im aktuellen Block deklariert werden, sind innerhalb dieses Blocks sichtbar, aber nicht mehr, nachdem das Programm den Block verlassen hat. Betrachten Sie ein Beispiel:

{
    my $x = 42;
    say $x;
}

say $x;

Die Variable $x wird im Codeblock erstellt. Der erste Aufruf von say $x gibt den Wert der Variablen aus, da sie innerhalb des Blocks sichtbar ist. Der zweite say $x schlägt fehl, weil der Name $x außerhalb des Blocks nicht existiert und nach dessen Ende nicht bekannt ist. Das Programm kompiliert nicht und es wird ein Fehler angezeigt:

===SORRY!=== Error while compiling /Users/ash/raku-course/t.raku
Variable '$x' is not declared
at /Users/ash/raku-course/t.raku:6
------> say ⏏$x;

Praxis

Lösen Sie 1 Quiz zum Inhalt dieses Themas.

Kursnavigation

Codeblöcke   |   Quiz — Lexikalischer Gültigkeitsbereich