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

Napsal O webu (») 25. 12. 2007 v kategorii Programování, přečteno: 1613×
obrazky/logo_perl.jpg

Skalární proměnné

Skaláry obsahují vždy jedinou hodnotu a to buďto řetězec, číslo nebo odkaz na jiná data. Skalár tedy reprezentuje všechny číselné datové typy a to jak celočíselné tak i v pevné i plovoucí čárce, také datové typy znakové a řetězcové.


Se skalární proměnou se zachází podle toho, jakým způsobem s ním programátor zachází. Záleží na tedy na operátorech ve výrazu, kde se s proměnnou pracuje. Je tedy možné zacházet s proměnnou jako s číslem a jindy jako s řetězcem bez ohledu na její obsah. Ani v jednom případě nebude kompilátorem zahlášena chyba (konverze z čísla na řetězec a naopak se provádí automaticky bez upozornění). Celou záležitost má v rukou jen a jen programátor. Ten si musí pohlídat, jaká data proměnná obsahuje a k jakému účelu jsou data využívána. Tuto vlastnost by měl mít programátor vždy na paměti. Může to být totiž zdrojem chyb, které nejsou na první pohled patrné a tím pádem těžce odhalitelné.


Při práci s odkazy je také možné použít automatickou konverzi odkazu na číslo nebo řetězec, ale kromě možnosti porovnání hodnoty to nemá smysl. Při použití odkazu jako čísla vede k použití číselné reprezentaci odkazu, čímž získáme několikamístné celé číslo. Pro dva různé odkazy dostaneme dvě různá čísla, ovšem jejich zpětná konverze je nemožná.

Logický typ

V Perlu neexistuje logický datový typ (jako např. Boolean). Pro uchování logické hodnoty lze použít jakýkoliv typ proměnné. Záleží na tom, v jakém kontextu danou proměnnou použijeme. Chceme-li nějakou proměnnou použít pro uchování logické hodnoty, pak se musím řídit pravidly o pravdivosti. Použijeme-li skalár, pro nepravdivou hodnotu do něj uložíme hodnotu nula, prázdný řetězec, řetězec obsahující znak nula nebo nedefinovanou hodnotu. Pravdivá hodnota bude pak všechno ostatní. Chceme-li použít pole pro uchování logické hodnoty, pak jako nepravda bude vyhodnoceno prázdné pole ve skalárním kontextu. V následující tabulce je shrnuto použití skaláru a pole jako logického datového typu.


DefiniceVyhodnocen jako
$x = 1;$x je pravda
$x = 0;$x je nepravda
$x = '0';$x je nepravda
$x = undef;$x je nepravda
@pole = ();@pole ve skalárním kontextu je nepravda
@pole = undef;@pole ve skalárním kontextu je pravda, obsahuje jednu hodnotu


V dalším díle se podíváme na další skalární datové typy. 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 jedenáct a jedna