Kurso de Raku / Esencoj / Bazoj de funkcioj / Kreado kaj vokado de funkcioj

Defaŭltaj valoroj

Ambaŭ poziciaj kaj nomitaj parametroj povas havi defaŭltajn valorojn. Se la funkcio havas defaŭltan valoron por la donita parametro, tiu parametro povas esti preterlasita kiam oni vokas la funkcion.

Poziciaj parametroj

Ekzemplo de defaŭlta valoro por funkcio kun poziciaj parametroj:

sub greet($name = 'World') {
    say "Hello, $name!";
}

greet('Merinda');
greet();

La unua voko uzas la nomon pasitan kiel la sola argumento kaj tiel presas Hello, Merinda!. La dua voko uzas la defaŭltan valoron kaj presas Hello, World!.

Se funkcio havas pli ol unu parametrojn, tiam la defaŭltaj valoroj povas esti uzataj nur ĉe la fino de la listo de ili:

sub f($a, $b, $c = 42, $d = 50) { . . . } # ĝuste
# sub f($a = 10, $b = 20, $c, $d) { . . . } # MALĜUSTE

Nomitaj parametroj

La sama sintakso estas uzata por agordi defaŭltajn valorojn por nomitaj parametroj:

sub greet(:$name = 'World') {
    say "Hello, $name!";
}

greet(name => 'Merinda'); # Hello, Merinda!
greet(); # Hello, World!

La ordo de la nomitaj parametroj ne gravas, do iu ajn el ili povas havi defaŭltajn valorojn, eĉ la unua en la listo:

sub greet(:$greeting = 'Hello', :$name) {
    say "$greeting, $name!";
}

greet(name => 'Alla'); # Hello, Alla!

Praktiko

Vin atendas 2 kvizoj pri la enhavo de ĉi tiu temo.

Kursa navigado

Kvizo 2 — Variabloj kiel nomitaj parametroj   |   Kvizo — Difinante defaŭltajn valorojn


💪 Aŭ iru rekte al la ekzercoj de ĉi tiu sekcio.