Kurso de Raku / Esencoj / Bazoj de funkcioj / Kreado kaj vokado de funkcioj
Nomitaj parametroj
Kontraste al poziciaj parametroj, nomitaj parametroj estas referencitaj per iliaj nomoj.
La sekva funkcio prenas du parametrojn nomitajn $from
kaj $to.
sub distance(:$from, :$to) { $from - $to }Nun, por voki la funkcion, vi devas nomi la argumentojn:
say distance(from => 30, to => 10); # 20Estas eraro pasi la argumentojn kvazaŭ ili estus poziciaj. Ekzemple,
voko distance(30, 10) generas eraron:
Tro multaj poziciaj pasis; atendis 0 argumentojn sed ricevis 2
en sub distance ĉe t.raku linio 1
en bloko <unit> ĉe t.raku linio 2
La bona parto estas, ke nomitaj argumentoj povas esti listigitaj en ajna ordo. La sekvaj du vokoj estas tute ekvivalentaj:
say distance(from => 30, to => 10); # 20
say distance(to => 10, from => 30); # 20Pasante variablojn
Kiam la valoro, kiun vi volas pasi al funkcio, estas konservita en variablo, kies nomo koincidas kun la nomo de la parametro, vi povas ĝui specialan sintakson, kiu reduktas tajpadon:
my $from = 30;
my $to = 10;
say distance(:$from, :$to); # 20Ĉi tio estas simila al vorteca voko:
say distance(from => $from, to => $to); # 20Denove, la ordo ne estas strikta ĉi tie:
say distance(:$to, :$from); # 20Se la nomo de la variablo diferencas de la nomo de la parametro, uzu unu el la manieroj pasi paron:
my $a = 20;
my $b = 10;
say distance(from => $a, to => $b);
# aŭ:
say distance(:from($a), :to($b));Praktiko
Vin atendas 2 kvizoj pri la enhavo de ĉi tiu temo.
Kursa navigado
← Kvizo — Vokante funkcion | Kvizo 1 — Nomitaj parametroj →
💪 Aŭ iru rekte al la ekzercoj de ĉi tiu
sekcio.