Raku kurss / Pamati / Funkciju izveide un izsaukšana

Nosauktie parametri

Atšķirībā no pozicionālajiem parametriem, nosauktie parametri tiek norādīti pēc to nosaukumiem.

Šī funkcija pieņem divus parametrus, kas saucas $from un $to.

sub distance(:$from, :$to) { $from - $to }

Tagad, lai izsauktu funkciju, jums ir jānorāda argumentu nosaukumi:

say distance(from => 30, to => 10); # 20

Ir kļūda nodot argumentus tā, it kā tie būtu pozicionāli. Piemēram, izsaukums distance(30, 10) radīs kļūdu:

Pārāk daudz pozicionālo argumentu; tika gaidīti 0 argumenti, bet tika saņemti 2
    sub distance pie t.raku 1. rindas
    blokā <unit> pie t.raku 2. rindas

Labā ziņa ir tā, ka nosauktos argumentus var uzskaitīt jebkurā secībā. Šie divi izsaukumi ir pilnīgi ekvivalenti:

say distance(from => 30, to => 10); # 20

say distance(to => 10, from => 30); # 20

Mainīgo nodošana

Kad vērtība, kuru vēlaties nodot funkcijai, ir saglabāta mainīgajā, kura nosaukums sakrīt ar parametra nosaukumu, jūs varat izmantot īpašu sintaksi, kas samazina rakstīšanu:

my $from = 30;
my $to = 10;
say distance(:$from, :$to); # 20

Tas ir līdzīgi kā izsaukums ar vairāk vārdiem:

say distance(from => $from, to => $to); # 20

Atkal, secība šeit nav stingra:

say distance(:$to, :$from); # 20

Ja mainīgā nosaukums atšķiras no parametra nosaukuma, izmantojiet vienu no veidiem, kā nodot pāri:

my $a = 20;
my $b = 10;

say distance(from => $a, to => $b);

# vai:

say distance(:from($a), :to($b));

Prakse

Pabeidziet viktorīnas, kas aptver šīs tēmas saturu.

Kursa navigācija

Funkciju izveide un izsaukšana / Pozicionālie parametri   |   Funkciju izveide un izsaukšana / Noklusējuma vērtības


💪 Or jump directly to the exercises to this section.

Šī lapa ir automātiski tulkota ar ChatGPT 4o. Oriģinālais teksts angļu valodā.

Šīs lapas tulkojumi: EnglishDeutschEspañolItalianoLatviešuNederlandsБългарскиРусскийУкраїнська