© 2013 All rights reserved.
1

Seriál Ruby on Rails 6: Datové typy

Úvod do datových typů v Ruby. Vysvětlení pojmu, typová kontrola proměnných, dynamicky typované proměnné.

Datový typ se snaží přesně definovat jakýsi druh, nebo typ proměnných. Tento typ je určen vždy svým oborem hodnot a operacemi, které s nimi lze provádět.

Pro každý datový typ tedy musí existovat obor hodnot a definované operace, které s tímto datovým typem lze provádět.

datatype

Abyste si udělali představu, můžete se na datové typy podívat například stejně jako na číselné typy v matematice. Existuje několik základních typů (od celých čísel, přes různá racionální čísla, až po složitě popsané číselné typy), pro které jsou přesně definovány množiny a rozsahy čísel, které v daném typu jsou obsaženy. S každým takovým typem můžeme dělat určité matematické operace.

Typová kontrola proměnných v Ruby

Typová kontrola je nástroj, pomocí nějž interpret provádí kontrolu proměnných a podle jejího datového typu dále kontroluje operace prováděné nad touto proměnnou.

Jak jsme si již napsali, každý datový typ může nabývat svůj vlastní obor hodnot. Pokud se podíváte na některé z předchozích příkladů, tak jste se s několika základními typy setkali. V příkladech jsme pracovali s typy String (řetězec), FixNum (celé číslo), Float (desetinné číslo), apod.

Když si pročtete příklady důkladně, všimnete si, že jednotlivé datové typy se při prácí chovají odlišně:

Například tento kód vyhodnocuje na dvou řádcích dva výrazy. U obou se jedná o násobení, nicméně každá je zpracován jinak. První řádek zpracuje dvě celá čísla, a vrací opět celé číslo, které je výsledkem této operace.

Na druhém řádku je násoben řetězec s celým číslem, výsledkem je nyní pouze řetězec, vyhodnocen podle výrazu string + string.

Abychom pochopili práci s datovými typy, musíme si prvně uvědomit, jak s nimi pracuje interpret Ruby.

Dynamicky typovaný jazyk

Ruby je, stejně jako spousta jiných, většinou objektových programovacích jazyků, dynamicky typovaný jazyk.

Na druhé straně dynamicky typovaných programovacích jazyků jsou staticky typované jazyky, kde platí trochu jiná pravidla pro práci s proměnnými.

Statické typované programovací jazyky jsou rozdílné právě tím, že při deklaraci proměnné musí být tato proměnná uvedena včetně jejího datového typu, který tato proměnná udržuje po dobu běhu programu (samozřejmě existují možnosti přetypování proměnné). U staticky typovaných programovacích jazyků si musíme neustále hlídat, jaký datový typ proměnná obsahuje a pouze tento datový typ do proměnné ukládat. Pro programátora je tato operace zbytečně pracná.

Právě z toho důvodu vznikly dynamicky typované programovací jazyky, kde odpadá nutnost datový typ proměnné uvádět a po dobu běhu programu tento typ neustále hlídat. Interpret se automaticky stará o možnosti přetypování proměnné a datový typ v případě nutnosti změní.

Pro pochopení uvedu následující příklad (příkaz .class slouží k určení datového typu):

V příkladu je vytvořena proměnná a, která je na začátku inicializována pro typ nil – tedy instance třídy NillClass. V průběhu programu se ale datový typ proměnné mění a interpret jej bez problému zpracovává. A právě v tom spočívá základní myšlenka dynamického typování.

Dynamické typování proměnných zlepšuje flexibilitu programování, programátor se nezdržuje se složitou deklarací proměnných, ale pouze je použije. Interpret jazyka po potom o tuto deklaraci stará automaticky a datový typ k proměnné přidružuje v pozadí.

Závěrem

Spíše teoretická část příště naváže na konkrétní číselné datové typy.

Comments (1)

vačšina objektových jazykov sú staticky typované. Dynamické typovanie sa na vačšie projekty nehodí pretože je časovo náročnejšie napísať bezpečný kód v dynamickom jazyku ako v staticky typovanom.

Add comment

About
Hi, i am programmer from the Czech Republic. I love web development (Ruby, Ruby on Rails, PHP, Nette) and iOS development (Objective-C, Cocoa).
To cooperate, here is my phone:
+420 608 836