Perl, Datové typy (10.díl)

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

Délka pole

Počet prvků v poli lze získat vyhodnocením proměnné v skalárním kontextu. Explicitně toho lze dosáhnout s využitím funkce scalar, viz následující kód.


Scalar @pole;



Stejný výsledek lez získat také v jinak vzniklém skalárním kontextu. Index poledního prvku pole je obsazen v proměnné $#pole. Pokud tedy indexujeme pole od 0, je hodnota této proměnné o jedna menší, než je velikost pole. Přiřazením do této proměnné lze měnit velikost pole. Je-li nově přiřazovaná hodnota větší, než je aktuální délka pole, pak je počet prvků pole zvýšen - jsou doplněny prvky s nedefinovanou hodnotou. Je-li přiřazovaná hodnota menší, než aktuální délka pole, pak je pole zkráceno a přebytečné prvky jsou ztraceny. Zkrátit pole na nulovou délku lze tedy podle následujícího příkladu:


@pole = ();

$#pole = -1;


Přístup k jednotlivým prvkům

Pro přístup k jednotlivým prvkům pole se používají indexy, což jsou číselné hodnoty začínající od nuly (implicitně) a zadávají se do hranatých závorek za jméno proměnné typu pole. Jednotlivé hodnoty pole jsou skalární hodnoty (uvozeny znakem $). Proměnná $pole[0] je prvním prvkem pole @pole, proměnná $pole[1] druhým….a proměnná $pole[$#pole] posledním.


K prvkům lze také přistupovat od zadu. K tomu se používají záporné indexy pole. $pole[-1] tedy znamená první prvek pole od konce, neboli poslední prvek pole @pole. Nezáleží na tom, zda přistupujeme k prvkům pole nebo seznamového literálu, v obou případech se používají hranaté závorky a indexy. Číselné indexy nemusejí být pouze konstanty, ale i výrazy vracející hodnotu. Tyto výrazy jsou vždy vyhodnocovány vždy ve skalárním kontextu a hodnota je brána jako číslo (řetězec je nejdříve převeden na číslo). V následujícím příkladu je znázorněno několik příkazů na dotaz na určité prvky pole (seznamu) pomocí různých přístupů.



$pole [1] = 'abc';
Print $pole [1];
//Vytiskne hodnotu druhého prvku pole.

$a = (1, 2, 3) [2];

$x = 1;

$pole [$x] = 'x'
// přiřazení do $pole [1]

$pole [@pole] = '4';
// přiřazení do $pole [3]

$pole ['102klm'] = 3;
// přiřazení do $pole [2]

$pole ['abc'] = 'z';
// přiřazení do $pole [0]

$pole [undef] = 'y';
// přiřazení do $pole [0]




A to by bylo pro dnešek všechno. V dalším díle se podíváme na možnosti práce s více prvky seznamu nebo pole najednou. 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

Č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 sedm a deset