Späť na blog

Prehľad dátových typov v Ruby

Prehľad dátových typov v Ruby

Ruby je známy programovací jazyk. Jeho cieľom je zvýšiť jednoduchosť a produktivitu. Je to tiež plne objektovo orientovaný programovací jazyk. Okrem toho Ruby prichádza s elegantnou syntaxou, ktorá sa prirodzene číta a ľahko píše.

Akékoľvek programovanie vyžaduje správu rôznych dátových typov. Dátový typ popisuje konkrétnu triedu dát. Hovorí stroju, ako má s dátami v programe zaobchádzať. Dátové typy sú kľúčové pre určenie toho, čo sa dá s dátami robiť (vrátane operácií, ktoré je možné vykonať). V tomto návode sa ponoríme hlbšie do dátových typov dostupných v Ruby. Preskúmame tiež dynamické typovanie. Pomocou tejto funkcie dokáže Ruby automaticky určiť dátový typ premennej bez jej explicitnej deklarácie. Začnime!

Požiadavky

Na precvičenie a implementáciu krokov predvedených v tejto príručke budete potrebovať nasledujúce komponenty:

Dátové typy v Ruby

Ruby obsahuje všetky bežné dátové typy, s ktorými sa stretnete v akomkoľvek programovacom jazyku: celé čísla, desatinné čísla, reťazce, polia, symboly, hashe atď. Ďalej si povieme o tom, ako pracovať s rôznymi dátovými typmi v Ruby.

Krok 1 – Celé čísla

Podobne ako v matematike, celé čísla sú v počítačovom programovaní celé čísla. Hodnota môže byť kladná, záporná alebo 0. Rozsah hodnôt je nasledovný:

Je čas vyskúšať si celé čísla v Ruby. Prvým príkladom je vypísanie jednoduchého celého čísla na obrazovku:

Data Types in Ruby 1

Ďalej budeme pracovať s celočíselnou premennou. Tu premenná sample_int obsahuje celočíselnú hodnotu (99) a funkcia print vypíše hodnotu premennej na obrazovku:

Data Types in Ruby 2

S celými číslami môžeme robiť aj matematické operácie. Nasledujúci príklad ukazuje jednoduchý súčet dvoch celých čísel:

Keď pracujeme s veľkými číslami, často používame čiarky (,), aby sa dali ľahšie čítať. Napríklad jeden milión (1000000) sa pre lepšiu čitateľnosť píše ako 1,000,000. Hoci používanie čiarok je zakázané, Ruby umožňuje používať podčiarkovníky ( _) ako oddeľovač. Pozrite sa na nasledujúci príklad:

Data Types in Ruby 3

Používanie podčiarkovníkov zlepšuje čitateľnosť kódu, najmä pri práci s veľkými celočíselnými hodnotami.

Krok 2 – Desatinné čísla

A Desatinné číslo (skrátene float) predstavuje reálne číslo. Podobne ako v matematickej definícii, reálne čísla môžu byť racionálne alebo iracionálne. V Ruby je float v podstate číslo obsahujúce desatinnú čiarku.

Skúsme vypísať hodnotu float na obrazovku:

Nasledujúci príklad ukazuje deklaráciu premennej typu float:

Na hodnotách a premenných typu float môžeme vykonávať aj rôzne matematické operácie. Nasledujúci príklad ukazuje jednoduchý súčet dvoch desatinných čísel:

Čo ak by sme sčítali float a celé číslo? Výsledná hodnota bude float. V nasledujúcom príklade, napriek tomu, že 55.0 je celé číslo, sa s ním zaobchádza ako s float:

Krok 3 – Boolean

Booleovské hodnoty predstavujú pravdivostné hodnoty logickej vetvy matematiky. V Ruby sú booleovské dátové typy reprezentované dvoma hodnotami: true a false:

  • Väčší ako

    • 100 > 99: true

    • 99 > 100: false

  • Menší ako

    • 500 < 999: true

    • 999 < 500: false

  • Rovná sa

    • 10 == 10: true

    • 9 == 99: false

Podobne ako čísla, môžeme tiež uložiť true alebo false hodnotu v premennej. Nasledujúci príklad demonštruje túto vlastnosť:

Step 4 – Reťazce

V programovaní sa reťazec reprezentuje ako sekvencia znakov (písmená, čísla a symboly). V jazyku Ruby existujú reťazce v jednoduchých úvodzovkách ( ') alebo dvojitých úvodzovkách ( "). Už sme podrobne prebrali používanie reťazcov v Ruby, takže toto bude krátka časť.

Nasledujúci príklad je základný hello world program v Ruby:

Reťazce môžeme ukladať aj do premenných. Nasledujúci príklad zahŕňa aj spájanie reťazcov:

Data Types in Ruby 4

Step 5 – Polia

Pole je dátová štruktúra, ktorá dokáže uchovávať kolekciu prvkov rovnakého dátového typu s pevnou veľkosťou. Môže sa tiež chápať ako kolekcia premenných rovnakého dátového typu. Je to jedna z najzákladnejších dátových štruktúr vo väčšine moderných programovacích jazykov.

V Ruby je pole definované nasledovne:

Je možné vytvoriť pole akýchkoľvek iných dátových typov, o ktorých sme doteraz hovorili (celé čísla, desatinné čísla a reťazce). Tu je niekoľko príkladov:

  • Celé číslo: [-5, 0, 5]

  • Desatinné číslo: [-9.99, -6.99, -3.99, 0, 3.99]

  • Reťazec: [“the”, “quick”, “brown”, “fox”]

Nasledujúci príklad implementuje všetky tieto typy polí:

Data Types in Ruby 5

Všimnite si, že keď funkcia print narazí na pole, vytlačí celé pole na obrazovku. Pre väčšie pohodlie sa s poliami často stretnete ako s premennými. Aktualizujme kód:

Data Types in Ruby 6

Data Types in Ruby 7

Teraz môžeme pracovať s jednotlivými prvkami polí:

Data Types in Ruby 7

Všimnite si, že v Ruby začína indexová hodnota polí od 0.

Pre pohodlie prichádzajú polia v Ruby s metódami .first a .last, ktoré vytlačia prvý a posledný prvok:

Data Types in Ruby 8

V Ruby majú polia ďalšiu zaujímavú vlastnosť. Môžu súčasne obsahovať rôzne typy údajov. Môžete napríklad ukladať reťazce, symboly a dokonca aj iné polia:

Data Types in Ruby 9

Step 6 – Symbols

V jazyku Ruby je symbol špeciálny dátový typ, ktorý funguje ako štítok alebo identifikátor. Symboly sú nemenné, čo znamená, že sa nedajú zmeniť. Symboly vyzerajú, akoby deklarovali premenné bez akejkoľvek hodnoty.

Tu je príklad symbolu:

Vo všeobecnosti sa symboly používajú na identifikáciu niečoho dôležitého. V iných situáciách sú však reťazce viac než dostatočné.

Ruby, ako objektovo orientovaný jazyk, považuje všetko za objekt (vrátane reťazcov) s vlastným jedinečným miestom v pamäti, a to aj v prípade, že sú reťazce identické. Keď však odkazujete na symbol, ide o ten istý objekt všade v programe, na rovnakom mieste v pamäti.

Step 7 – Hashes

Hash je kolekcia kľúčov a hodnôt podobná slovníku. Hashe sa často používajú na ukladanie súvisiacich údajov, napríklad informácií o používateľovi.

Tu je rýchly príklad hashu. Vytvorili sme hash user_info obsahujúci používateľské meno a heslo používateľa:

Data Types in Ruby hashing in ruby

Na získanie hodnôt z dvojice kľúč-hodnota musíme použiť kľúč. Nasledujúci príklad tento proces demonštruje:

Data Types in Ruby retrieve value using key

Ruby tiež umožňuje definovať hash pomocou mierne odlišnej syntaxe ( : namiesto =>):

Data Types in Ruby retrieving value using key

Táto syntaktická štruktúra je podobná syntaxi používanej v iných jazykoch, napríklad JavaScript. V tejto syntaktickej štruktúre sú kľúče definované ako symboly. Preto namiesto použitia "username", používame: username na prístup k hodnote.

Dynamic Typing

Možno ste si už všimli, že pri deklarovaní premennej nemusíme explicitne priraďovať dátový typ. Namiesto toho dátový typ určuje hodnota premennej. Ruby používa dynamic typing, kde sa kontrola typov vykonáva počas behu programu (runtime). Naopak, v programovacích jazykoch so static typing sa dátové typy určujú počas kompilácie (napríklad v C/C++).

V nasledujúcom príklade sú všetky hodnoty priradené premennej dyn_var platné:

V dynamicky typovaných jazykoch môžeme voľne znova použiť existujúcu premennú na ukladanie rôznych dátových typov. Tu je predchádzajúci príklad aktualizovaný, aby demonštroval tento jav:

dynamically typed variables

Ako tento príklad ukazuje, zakaždým, keď je priradená nová hodnota, mení sa dátový typ premennej dyn_var za behu. Je to užitočné pri konverzii jedného dátového typu na iný. Nasledujúci príklad to demonštruje:

get input and cast

Tu,

  • Keďže vstupy z klávesnice sú reťazce, length je najprv reťazec.

  • Keďže naša požadovaná hodnota je desatinné číslo (float), konvertujeme hodnotu reťazca na float pomocou to_f metódy.

  • Kvôli zmene hodnoty sa premennej length priradí dátový typ float. To je to, čo vidíme pri výpise jej hodnoty na obrazovku.

Čo by sa stalo, keby sme sa pokúsili zmiešať dva rôzne dátové typy dohromady? Ruby vyhodí chybu. Pozrite sa:

mixing two datatypes

Identifikácia dátového typu

V jazyku Ruby sa so všetkým zaobchádza ako s objektom. Každý objekt v Ruby prichádza s metódou class. Pri volaní táto metóda hovorí, akého dátového typu je zdroj. Tu je niekoľko príkladov použitia class metódy:

get classes name

Ďalším spôsobom, ako zistiť dátový typ, je použitie kind_of? metódy. Porovnáva dátový typ objektu s požadovaným dátovým typom a vracia boolovskú hodnotu. Pozrite si to v nasledujúcom príklade:

check datatype

Podobne existuje ďalšia metóda is_a?, ktorá porovnáva dátový typ a vracia boolovskú hodnotu. Jediným rozdielom je názov metódy. Môže však byť preferovanejšia, pretože pre vývojárov je o niečo jednoduchšie ju čítať a pochopiť. Aktualizujte predchádzajúci príklad pomocou is_a?:

check datatype

Záverečné myšlienky

Práca s akýmkoľvek programovacím jazykom si vyžaduje dobré porozumenie dátovým typom, ktoré podporuje. V tejto príručke sme preskúmali najbežnejšie dátové typy používané pri programovaní v Ruby. Prebrali sme a demonštrovali celé čísla, desatinné čísla, reťazce, symboly, boolovské hodnoty a hashe (s príkladmi).

Pozrite si ďalšie návody z nášho blogu, ktoré vám pomôžu preskúmať Ruby:

Príjemné programovanie!

author

Preslav Dobrev

Autor · CloudSigma

Preslav Dobrev je kreatívny dizajnér v spoločnosti CloudSigma, ktorý sa zameriava na konzistentnú firemnú identitu prostredníctvom tradičných a inovatívnych marketingových kanálov. Dokáže brilantne spájať umeleckú víziu so strategickým marketingom, čím vytvára pôsobivé príbehy značky.

Komentáre

Zatiaľ žiadne komentáre. Buďte prvý.