Perl, Podprogramy (40.díl)

Napsal O webu (») 29. 6. 2008 v kategorii Programování, přečteno: 1294×
obrazky/logo_perl.jpg

Definice a deklarace podprogramu

Deklarace podprogramu začíná klíčovým slovem „sub“, za kterým následuje jméno podprogramu (v případě, že nevytváříme anonymní podprogram). Nepovinně může následovat definice počtu a typu argumentů funkce. Následuje-li blok s tělem podprogramu, hovoříme o definici. Nechceme-li podprogram definovat hned, ale chceme-li interpretu říci, že existuje podprogram příslušného jména, můžeme provést tzv. dopřednou deklaraci — definici podprogramu bez bloku.



sub funkce;

// dopředná deklarace

sub funkce {...}

// definice funkce

sub funkce2 ($) {.,,}

// definice s argumenty funkce




Voláme-li funkci ještě před její definicí, je nutné seznam jejích argumentů uzavřít do kulatých závorek. Výjimkou je, provedeme-li před voláním funkce dopřednou deklaraci. V tom případě závorky nejsou nutné. Situace je uvedena v následujícím kódu.



sub soucet;

// dopředná deklarace

soucet 1,2,3;

// můžeme volat bez závorek


sub soucet {

$s = 0;

$s += $_ for @_;

print $s

}


Volání funkce

Voláním funkce rozumíme použití jména funkce ve výrazu. Každá funkce může přebírat seznam argumentů, které jsou určitým způsobem zpracovávány či ovlivňují chod funkce. Seznam argumentů je obyčejný seznam, proto se uzavírá do dvojice kulatých závorek. Není to však nutné v případě, že funkce byla dopředu deklarována či vtažena z jiného modulu. Funkce se nemusí volat s použitím počátečního &. Výjimkou je volání funkce pomocí dereference odkazu na funkci.



// definice funkce, jsou očekávány dva skalární argumenty

sub soucin ($$) {

print $_[0]*$_[1]

}

soucin 1, 2;
soucin (1, 2);

// Oba zápisy v pořádku

soucin 1, 2, 3;
soucin (1, 2, 3);

// V obou případech chyba, mnoho argumentů

& soucin 1, 2, 3;
& soucin (1, 2, 3);

// První v pořádku, třetí parametr se ignoruje
// Druhý syntaktická chyba




A to by bylo pro dnešek všechno. V dalším díle se podíváme na návratovou hodnotu a rekurzi, tedy volání funkce sebe sama. V případě jakýchkoliv dotazů mě kontaktujte na email: habrman@banan.cz.



Autor: Robert Habrman
Štítky: Perl
Facebook Twitter Topčlánky.cz Linkuj.cz

Komentáře

Zobrazit: standardní | od aktivních | poslední příspěvky | všechno
Článek ještě nebyl okomentován.


Nový komentář

Téma:
Jméno:
Notif. e-mail *:
Komentář:
  [b] [obr]
Odpovězte prosím číslicemi: Součet čísel osm a tři