Kurso de Raku / Progresinta / Ujoj / Ordigitaj ujoj
Ligado per :=
Ĝis nun ĉiu variablo, kiun vi kreis, naskis novan ujon, kaj atribuo
per = metis valoron en tiun ujon. Ligado, skribata
per :=, estas alia: ĝi igas nomon referenci
ekzistantan ujon anstataŭ krei novan.
Post ligado la du nomoj kunhavas la saman ujon, do ŝanĝo farita tra unu el ili videblas tra la alia:
my $x = 10;
my $y := $x;
$x = 20;
say $y; # 20Ĉi tie $y := $x ne kopias la valoron 10. Ĝi
faras $y alia nomo por la sama ujo kiel $x.
Kiam $x poste ricevas 20, legi $y
ankaŭ redonas 20.
Komparu tion kun ordinara atribuo, kiu kopias la valoron en apartan ujon:
my $x = 10;
my $y = $x; # simpla kopio
$x = 20;
say $y; # 10Ligado funkcias ankaŭ kun tabeloj. La jena faras @alias
alia nomo por @data:
my @data = 1, 2, 3;
my @alias := @data;
@alias[0] = 99;
say @data; # [99 2 3]Ankoraŭ unu detalo: se vi ligas nomon rekte al literala valoro, ne estas ujo malantaŭ ĝi, do la nomo fariĝas nur-legebla:
my $pi := 3.14;
$pi = 3;Cannot assign to an immutable value
in block <unit> at t.raku line 2Kursa navigado
← Kvizo — Tabeloj kaj listoj | Platigo kaj ero-igo →
💪 Aŭ iru rekte al la ekzercoj de ĉi tiu
sekcio.