Natrag na blog

Pregled tipova podataka u Rubyju

Pregled tipova podataka u Rubyju

Ruby je dobro poznati programski jezik. Cilj mu je poboljšati jednostavnost i produktivnost. Također je potpuno objektno orijentirani programski jezik. Osim toga, Ruby dolazi s elegantnom sintaksom koja je prirodna za čitanje i jednostavna za pisanje.

Svako programiranje zahtijeva upravljanje različitim tipovima podataka. Tip podataka opisuje određenu klasu podataka. On govori stroju kako bi trebao rukovati podacima u programu. Tipovi podataka ključni su za određivanje onoga što se može učiniti s podacima (uključujući operacije koje se mogu izvesti). U ovom vodiču ćemo zaroniti dublje u tipove podataka dostupne u Rubyju. Također ćemo istražiti dinamičko tipiziranje. Koristeći ovu značajku, Ruby može automatski odrediti tip podataka varijable bez njezinog eksplicitnog deklariranja. Počnimo!

Preduvjeti

Za vježbanje i implementaciju koraka prikazanih u ovom vodiču, trebat će vam sljedeće komponente:

Tipovi podataka u Rubyju

Ruby sadrži sve uobičajene tipove podataka na koje ćete naići u bilo kojem programskom jeziku: cijele brojeve, decimalne brojeve, nizove znakova, polja, simbole, hasheve itd. Zatim ćemo pružiti pregled rada s različitim tipovima podataka u Rubyju.

Korak 1 – Cijeli brojevi

Slično kao u matematici, cijeli brojevi u računalnom programiranju su cijeli brojevi. Vrijednost može biti pozitivna, negativna ili 0. Raspon vrijednosti je sljedeći:

Vrijeme je da isprobate cijele brojeve u Rubyju. Prvi primjer je ispisivanje jednostavnog cijelog broja na ekranu:

Data Types in Ruby 1

Zatim ćemo raditi s varijablom cijelog broja. Ovdje varijabla sample_int sadrži vrijednost cijelog broja (99) i print funkcija ispisuje vrijednost varijable na ekranu:

Data Types in Ruby 2

Također možemo raditi matematičke operacije s cijelim brojevima. Sljedeći primjer prikazuje jednostavno zbrajanje dvaju cijelih brojeva:

Kada radimo s velikim brojevima, često koristimo zareze (,) kako bismo ih lakše čitali. Na primjer, jedan milijun (1000000) piše se kao 1,000,000 radi bolje čitljivosti. Iako je korištenje zareza zabranjeno, Ruby dopušta korištenje podvlaka ( _) kao graničnika. Pogledajte sljedeći primjer:

Data Types in Ruby 3

Korištenje podvlaka poboljšava čitljivost koda, posebno kada se radi o velikim vrijednostima cijelih brojeva.

Korak 2 – Brojevi s pomičnim zarezom

Broj s pomičnim zarezom (ili skraćeno float) predstavlja realni broj. Slično matematičkoj definiciji, realni brojevi mogu biti racionalni ili iracionalni. U Rubyju, float je u osnovi broj koji sadrži decimalnu točku.

Pokušajmo ispisati float vrijednost na ekranu:

Sljedeći primjer prikazuje deklariranje float varijable:

Također možemo izvoditi različite matematičke operacije na float vrijednostima i varijablama. Sljedeći primjer prikazuje jednostavno zbrajanje dvaju float brojeva:

Što ako zbrojimo float i cijeli broj? Rezultirajuća vrijednost bit će float. U sljedećem primjeru, unatoč tome što je 55.0 cijeli broj, tretira se kao float:

Korak 3 – Boolean

Booleove vrijednosti predstavljaju istinitosne vrijednosti logičke grane matematike. U Rubyju su Boolean tipovi podataka predstavljeni dvjema vrijednostima: true i false:

  • Veće od

    • 100 > 99: true

    • 99 > 100: false

  • Manje od

    • 500 < 999: true

    • 999 < 500: false

  • Jednako

    • 10 == 10: true

    • 9 == 99: false

Slično brojevima, također možemo pohraniti true ili false vrijednost u varijablu. Sljedeći primjer prikazuje ovu značajku:

Step 4 – Stringovi

U programiranju, string je predstavljen kao slijed znakova (slova, brojevi i simboli). U Rubyju, stringovi postoje unutar jednostrukih navodnika ( ') ili dvostrukih navodnika ( "). Već smo detaljno pokrili korištenje stringova u Rubyju, pa će ovo biti kratak odjeljak.

Sljedeći primjer je osnovni hello world program u Rubyju:

Također možemo pohraniti stringove u varijable. Sljedeći primjer također uključuje spajanje stringova:

Data Types in Ruby 4

Step 5 – Polja

Polje je struktura podataka koja može pohraniti zbirku elemenata istog tipa podataka fiksne veličine. Također se može zamisliti kao zbirka varijabli istog tipa podataka. To je jedna od najtemeljnijih struktura podataka u većini modernih programskih jezika.

U Rubyju, polje se definira na sljedeći način:

Moguće je stvoriti polje bilo kojih drugih tipova podataka o kojima smo do sada raspravljali (cijeli broj, decimalni broj i stringovi). Evo nekoliko primjera:

  • Cijeli broj: [-5, 0, 5]

  • Decimalni broj: [-9.99, -6.99, -3.99, 0, 3.99]

  • String: [“the”, “quick”, “brown”, “fox”]

Sljedeći primjer implementira sve ove vrste polja:

Data Types in Ruby 5

Imajte na umu da kada funkcija print naiđe na polje, ispisuje cijelo polje na ekranu. Radi veće praktičnosti, često ćete naići na polja kao varijable. Ažurirajmo kod:

Data Types in Ruby 6

Data Types in Ruby 7

Sada možemo raditi s pojedinačnim elementima polja:

Data Types in Ruby 7

Imajte na umu da u Rubyju vrijednost indeksa polja počinje s 0.

Radi praktičnosti, polja u Rubyju dolaze s metodama .first i .last koje ispisuju prvi i zadnji element:

Data Types in Ruby 8

U Rubyju polja imaju još jednu zanimljivu značajku. Mogu sadržavati različite vrste podataka u isto vrijeme. Na primjer, možete pohraniti stringove, simbole, pa čak i druga polja:

Data Types in Ruby 9

Korak 6 – Simboli

U Rubyju, simbol je posebna vrsta podataka koja se ponaša kao oznaka ili identifikator. Simboli su nepromjenjivi, što znači da se ne mogu mijenjati. Simboli izgledaju kao da deklarirate varijable bez ikakve vrijednosti.

Evo primjera simbola:

Općenito, simboli se koriste za identifikaciju nečeg važnog. Za druge situacije, međutim, nizovi znakova su više nego dovoljni.

Ruby, kao objektno orijentirani jezik, tretira sve kao objekt (uključujući nizove znakova) s jedinstvenom memorijskom lokacijom, čak i ako su nizovi identični. Međutim, kada referencirate simbol, to je isti objekt svugdje u programu, ista memorijska lokacija.

Korak 7 – Hashevi

Hash je zbirka ključeva i vrijednosti slična rječniku. Često se hashevi koriste za pohranu povezanih podataka, na primjer, informacija o korisniku.

Evo brzog primjera hasha. Stvorili smo hash user_info koji sadrži korisničko ime i lozinku korisnika:

Data Types in Ruby hashing in ruby

Da bismo dohvatili vrijednosti para ključ-vrijednost, moramo koristiti ključ. Sljedeći primjer prikazuje taj postupak:

Data Types in Ruby retrieve value using key

Ruby također omogućuje definiranje hasha pomoću malo drugačije sintakse ( : umjesto =>):

Data Types in Ruby retrieving value using key

Ova struktura sintakse slična je sintaksi koja se koristi u drugim jezicima, na primjer, JavaScript. U ovoj strukturi sintakse, ključevi su definirani kao simboli. Zato umjesto korištenja "username", koristimo: username za pristup vrijednosti.

Dinamičko tipiziranje

Možda ste već primijetili da prilikom deklariranja varijable ne moramo eksplicitno dodijeliti tip podataka. Umjesto toga, vrijednost varijable određuje tip podataka. Ruby koristi dinamičko tipiziranje gdje se provjera tipova vrši u vrijeme izvođenja. Nasuprot tome, tipovi podataka se određuju tijekom kompilacije u statički tipiziranim programskim jezicima (C/C++, na primjer).

U sljedećem primjeru, sve vrijednosti dodijeljene varijabli dyn_var su valjane:

U dinamički tipiziranim jezicima slobodni smo ponovno upotrijebiti postojeću varijablu za pohranu različitih tipova podataka. Ovdje je prethodni primjer ažuriran kako bi se prikazao ovaj fenomen:

dynamically typed variables

Kao što ovaj primjer pokazuje, svaki put kada se dodijeli nova vrijednost, to mijenja tip podataka varijable dyn_var u hodu. To je korisno pri pretvaranju jednog tipa podataka u drugi. Sljedeći primjer to pokazuje:

get input and cast

Ovdje,

  • Budući da su unosi s tipkovnice nizovi znakova, length je isprva niz znakova.

  • Budući da je naša željena vrijednost decimalni broj (float), pretvaramo vrijednost niza znakova u float pomoću to_f metode.

  • Zbog promjene vrijednosti, varijabli length se dodjeljuje float tip podataka. To je ono što vidimo kada ispisujemo njezinu vrijednost na ekranu.

Što bi se dogodilo ako bismo pokušali pomiješati dva različita tipa podataka? Ruby će javiti pogrešku. Pogledajte:

mixing two datatypes

Identifikacija tipa podataka

U Rubyju se sve tretira kao objekt. Svaki objekt u Rubyju dolazi s metodom class. Kada se pozove, ova metoda govori koji je tip podataka izvor. Evo nekoliko primjera korištenja class metode:

get classes name

Drugi način za određivanje tipa podataka je korištenje kind_of? metode. Ona provjerava tip podataka objekta u odnosu na traženi tip podataka i vraća Booleovu vrijednost. Pogledajte to u sljedećem primjeru:

check datatype

Slično tome, postoji još jedna metoda is_a? koja uspoređuje tip podataka i vraća Booleovu vrijednost. Jedina razlika je naziv metode. Međutim, možda je poželjnija jer ju je programerima malo lakše čitati i razumjeti. Ažurirajte prethodni primjer s is_a?:

check datatype

Završne misli

Rad s bilo kojim programskim jezikom zahtijeva dobro razumijevanje tipova podataka koje on podržava. U ovom smo vodiču istražili najčešće tipove podataka koji se koriste u programiranju u Rubyju. Raspravili smo i demonstrirali cijele brojeve, decimalne brojeve, stringove, simbole, Booleove vrijednosti i hasheve (uz primjere).

Pogledajte još vodiča s našeg bloga koji će vam pomoći istražiti Ruby:

Sretno kodiranje!

author

Preslav Dobrev

Autor · CloudSigma

Preslav Dobrev je kreativni dizajner u CloudSigma, usredotočen na dosljedan poslovni identitet korištenjem tradicionalnih i inovativnih marketinških kanala. Vješt je u spajanju umjetničke vizije sa strateškim marketingom kako bi stvorio dojmljive brendirane priče.

Komentari

Još nema komentara. Budite prvi.