Cursus Raku / Essentiëlen / Basis van functies / Functies maken en aanroepen
Benoemde parameters
In tegenstelling tot positionele parameters, worden benoemde parameters aangeduid met hun namen.
De volgende functie neemt twee parameters genaamd $from
en $to.
sub distance(:$from, :$to) { $from - $to }Om de functie aan te roepen, moet je de argumenten benoemen:
say distance(from => 30, to => 10); # 20Het is een fout om de argumenten door te geven alsof ze positioneel
zijn. Bijvoorbeeld, een oproep distance(30, 10) genereert
een fout:
Too many positionals passed; expected 0 arguments but got 2
in sub distance at t.raku line 1
in block <unit> at t.raku line 2
Het goede nieuws is dat benoemde argumenten in willekeurige volgorde kunnen worden vermeld. De volgende twee oproepen zijn volledig equivalent:
say distance(from => 30, to => 10); # 20
say distance(to => 10, from => 30); # 20Variabelen doorgeven
Wanneer de waarde die je aan een functie wilt doorgeven in een variabele wordt bewaard, waarvan de naam overeenkomt met de naam van de parameter, kun je genieten van een speciale syntaxis die het typen vermindert:
my $from = 30;
my $to = 10;
say distance(:$from, :$to); # 20Dit is vergelijkbaar met een omslachtige oproep:
say distance(from => $from, to => $to); # 20Ook hier is de volgorde niet strikt:
say distance(:$to, :$from); # 20Als de naam van de variabele verschilt van de naam van de parameter, gebruik dan een van de manieren om een paar door te geven:
my $a = 20;
my $b = 10;
say distance(from => $a, to => $b);
# of:
say distance(:from($a), :to($b));Praktijk
Maak de 2 quizzen over de inhoud van dit onderwerp.
Cursusnavigatie
← Quiz — Functie aanroepen | Quiz 1 — Benoemde parameters →
💪 Of ga direct naar de oefeningen in deze
sectie.