Ruby (limbaj de programare)

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Rubin
limbaj de programare
Ruby logo.svg
Autor Yukihiro Matsumoto
Data de origine 1995 ; Acum 26 de ani [1]
Ultima versiune 3.0.1 (5 aprilie 2021)
Utilizare generic, scripting
Paradigme orientat spre obiect
Tastare rață , dinamic
Extensii comune rb și rbw
Influențată de Lisp Smalltalk Perl
Implementare referință
Sistem de operare Multiplatform
Limbă ro
Licență Licență publică generală GNU
Site-ul web www.ruby-lang.org/it/

Ruby este un limbaj de programare interpretat cu sursă deschisă complet orientat spre obiecte . Născut în 1995 ca proiect personal al japonezului Yukihiro Matsumoto (adesea numit pur și simplu Matz ), se inspiră din alte limbi precum Perl , SmallTalk , Eiffel , Ada și Lisp cu scopul de a echilibra cu atenție paradigmele de programare funcționale și imperative [2] ] .

Succesul unor cadre precum Ruby on Rails a ajutat la răspândirea Ruby mai ales în dezvoltarea aplicațiilor web . În prezent se află în top zece dintre cele mai populare și utilizate limbi din lume în funcție de diferiți indici de măsurare specifici, cum ar fi TIOBE [3] .

Sisteme de operare

Interpretorul Ruby este disponibil pentru următoarele sisteme de operare :

Pot exista porturi pentru alte sisteme de operare. Există, de asemenea, JRuby , o implementare Java a interpretului .

Caracteristici principale

Ruby, deși este un limbaj obiect, are câteva caracteristici tipice paradigmelor imperative și funcționale.

Paradigma obiectelor lui Ruby este pură, ca și Smalltalk , adică fiecare componentă a limbajului, de la constante numerice la clase , este un obiect și, ca atare, poate avea metode . Cu toate acestea, spre deosebire de limbaje precum C ++ și derivate, obiectele din Ruby sunt ceva mult mai dinamice, deoarece este posibil să adăugați sau să modificați metode în timpul rulării . Prin urmare, tipul unui obiect nu este definit atât de mult de clasa care l-a instanțiat , ci de setul de metode pe care le posedă sau, conform terminologiei utilizate de obicei pentru limbaje în stil Smalltalk, de mesajele la care poate răspunde.

În Ruby, prin urmare, tastarea rațelor este fundamentală (din engleză dacă arată ca o rață și șarlatanțe ca o rață, trebuie să fie o rață : „be a duck”), acesta este principiul conform căruia comportamentul unei funcții argumentele sale nu trebuie să fie determinate de tipul acestora (așa cum se întâmplă în C ++ și alte limbi tipizate static ), ci de ce mesaje pot gestiona.

O altă caracteristică fundamentală a lui Ruby o constituie așa-numitele blocuri , care sunt în esență închideri (adică funcții cu un mediu), care vă permit să înlocuiți buclele explicite, frecvente în limbaje de nivel scăzut, cu utilizarea iteratorilor , ascunzând toate mecanismele interne ale ciclului în cauză.

Exemple

Salut Lume

Următorul exemplu scrie textul „ Hello world ” pe terminalul de ieșire.

 pune „Hello World”

Clase și metode

Iată un program identic semantic cu cel anterior, dar care folosește paradigma obiectului Ruby.

 clasa Greeter
  attr_reader : destinatar
  inițializare def ( destinatar )
    @recipient = destinatar
  Sfârșit
  def salut
    pune „Bună ziua # { destinatar } 
  Sfârșit
Sfârșit

greeter = Greeter . nou ( „lume” )
salutator . salut

Dactilografiere de rață

Funcția definită mai jos acționează diferit în funcție de mesajele la care argumentul său răspunde.

 def text_of ( widget )
  dacă widget . răspunde la? : subtitrare
    widget . legendă
  widget elsif . răspunde la? : text
    widget . text
  altceva
    ridicați „nu există text asociat widgetului # { widget } 
  Sfârșit
Sfârșit

Blocuri și iteratoare

Buclele în Ruby sunt de obicei realizate folosind iteratoare, cărora li se transmite un bloc, sub formă de cod între cuvintele cheie do și end , așa cum se arată în exemplul următor,

 5 . vremurile fac
  pune „Hello world”
Sfârșit

în care metoda times a obiectului „numărul 5” are grijă să execute numărul corect de ori (5, mai exact) codul indicat.

În definirea unui iterator, se folosește cuvântul cheie randament .

 clasa Intreg
  def times_header_and_footer
    pune "- BEGIN -"
    vremurile fac
      Randament
    Sfârșit
    pune "- END -"
  Sfârșit
Sfârșit

5 . times_header_and_footer face
  pune „Hello world”
Sfârșit

Observați cum a fost redeschisă clasa Integer (o clasă implicită) pentru adăugarea unei metode. Ieșirea scriptului este

 - ÎNCEPE - 
Salut Lume
Salut Lume
Salut Lume
Salut Lume
Salut Lume
- SFÂRȘIT -

Comentarii

Comentarii cu o singură linie sau cu mai multe linii

 # Acesta este un comentariu

= începe
Aceasta este
un comentariu
pe mai multe linii
= sfârșit

Rețineți că în comentariile pe mai multe linii, =begin și =end trebuie să fie la începutul rândului, fără nicio indentare .

Notă

  1. ^ ruby-lang.org , https://www.ruby-lang.org/en/about/ .
  2. ^ Despre Ruby , la www.ruby-lang.org . Adus pe 27 iulie 2021 .
  3. ^ index | TIOBE - Compania de calitate software , la www.tiobe.com . Adus pe 27 iulie 2021 .

Elemente conexe

Alte proiecte

linkuri externe

Controlul autorității LCCN (EN) sh00000128 · GND (DE) 4653817-3 · BNF (FR) cb144105976 (dată) · BNE (ES) XX4424926 (dată)