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

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

Práce s více prvky pole

V Perlu je možné pracovat s buď s prvky pole, s jeho částí nebo s polem jako s celkem. Jediným příkazem lze jedno pole nebo seznam zkopírovat do druhého. Přiazování probíhá tak, že si jsou přiřazovány prvky na odpovídajících pozicích. Nyní tři malé příklady:



1.
($a, $b, $c) = (1, 2, 3);

2.
($a, $b, $c) = (1, 2);

3.
($a, $b) = (1, 2, 3);




V prvním příkladu mají všechny tři proměnné hodnoty 1,2 a 3. V druhém případě se provede přiřazení do proměnných $a a $b, do proměnné $c bude uložena nedefinovaná hodnota, neboť nebyla nalezena odpovídající hodnota v seznamu na pravé straně. V posledním případě budou proměnným $a a $b přiřazeny hodnoty 1 a 2. Hodnota 3 bude zapomenuta, protože pro ni nebylo nalezeno na levé straně výrazu přiřazení.


Chceme-li zkopírovat všechny prvky pole1 do pole2, provedeme to následujícím příkazem. Obě pole poté mají stejnou délku. Mělo-li na začátku jedno pole větší délku, pak jsou přebytečné prvky zapomenuty.



@pole1 = @pole2;




Je-li na levé straně přiřazení seznamová proměnná, pak jsou do ní uloženy všechny zbývající hodnoty na straně pravé.



1.
($promenna1 $promenna2 @zbytek) = (1, 2, 3, 4, 5, 6, 7);

// $promenna1 obsahuje 1, $promenna2 obsahuje 2, @zbytek obsahuje (3, 4, 5, 6, 7)



2.
($promenna1 @zbytek $promenna2) = (1, 2, 3, 4, 5, 6, 7);

// $promenna1 obsahuje 1, @zbytek obsahuje (2, 3, 4, 5, 6, 7), $promenna2 obsahuje
// nedefinovanou hodnotu



Úseky polí

S několika prvky pole lze současně pracovat jako s tzv. úseky následujícím způsobem.



($den, $mesic, $rok) = (localtime) [3, 4, 5];

@pole[5..7] = (5, 6, 7);

Foreach ( @pole[5..7] ) { print };




Zápis úseku pole vypadá jako zápis prvku pole, ale na začátku je symbol @. Nejedná se totiž o skalární hodnotu, ale o seznamovou hodnotu. Práce s úseky pole je úplně stejná, jako s normálními polemi.


A to by bylo pro dnešek všechno. V dalším díle se podíváme na funkce pro práci s poli. 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 pět a jedna