Cursus Raku / Essentiëlen / Basis van besturingsstructuren / Code blokken

Lexicaal bereik

Een codeblok creëert een zogenaamde lexicale scope. Variabelen die in het huidige blok worden gedeclareerd, zijn binnen dat blok zichtbaar, maar niet nadat het programma het blok verlaat. Overweeg een voorbeeld:

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

say $x;

De variabele $x wordt in het codeblok gecreëerd. De eerste aanroep van say $x drukt de waarde van de variabele af omdat deze binnen het blok zichtbaar is. De tweede say $x faalt omdat de naam $x buiten het blok niet bestaat en niet bekend is nadat het blok is geëindigd. Het programma compileert niet en je krijgt een foutmelding:

===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;

Praktijk

Maak de 1 quiz over de inhoud van dit onderwerp.

Cursusnavigatie

Code blokken   |   Quiz — Lexicaal bereik