Ruby programmeringsspråk | |
---|---|
Forfatter | Yukihiro Matsumoto |
Opprinnelsesdato | 1995 [1] |
Siste versjon | 3.0.1 (5. april 2021) |
Bruk | generisk, skripting |
Paradigmer | objekt orientert |
Skriving | and , dynamisk |
Vanlige utvidelser | rb og rbw |
Påvirket av | Lisp , Smalltalk , Perl |
Referanseimplementering | |
Operativsystem | Multiplattform |
Tunge | no |
Tillatelse | GNU General Public License |
Nettsted | www.ruby-lang.org/it/ |
Ruby er et fullstendig objektorientert åpen kildekode - tolket programmeringsspråk . Født i 1995 som et personlig prosjekt av japanske Yukihiro Matsumoto (ofte ganske enkelt kalt Matz ), henter det inspirasjon fra andre språk som Perl , SmallTalk , Eiffel , Ada og Lisp med sikte på å nøye balansere funksjonelle og imperative programmeringsparadigmer [2 ] .
Suksessen til rammeverk som Ruby on Rails har hjulpet spredningen av Ruby, spesielt i utviklingen av webapplikasjoner . Det er for tiden på topp ti av de mest populære og brukte språkene i verden i henhold til forskjellige spesifikke måleindekser, for eksempel TIOBE [3] .
Ruby-tolken er tilgjengelig for følgende operativsystemer :
Porter kan eksistere for andre operativsystemer. Det er også JRuby , en Java-implementering av tolken .
Ruby, til tross for at det er et objektspråk, har noen kjennetegn som er typiske for imperative og funksjonelle paradigmer .
Rubys objektparadigme er rent, som Smalltalks , det vil si at hver komponent i språket, fra numeriske konstanter til klasser , er et objekt , og kan som sådan ha metoder . Imidlertid, i motsetning til språk som C ++ og derivater, er objekter i Ruby noe mye mer dynamisk, ettersom det er mulig å legge til eller endre metoder i løpetid . Derfor er ikke typen av et objekt definert så mye av klassen som instansierte det, men av settet med metoder den besitter, eller, i henhold til terminologien som vanligvis brukes for språk i Smalltalk-stil, av meldingene den kan svare på.
I Ruby er duck-typing derfor grunnleggende (fra engelsk hvis det ser ut som en and, og kvaksalver som en and, må det være en and : "be a duck"), det er prinsippet for hvordan oppførselen til en funksjon følger på sine argumenter må ikke bestemmes av typen av disse (som skjer i C++ og andre statisk skrevet språk ), men av hvilke meldinger de er i stand til å administrere.
Et annet grunnleggende kjennetegn ved Ruby utgjøres av de såkalte blokkene , som i hovedsak er lukkinger (dvs. funksjoner med et miljø), som lar deg erstatte de eksplisitte løkkene, ofte på lavnivåspråk, med bruk av iteratorer , som skjuler alle de interne mekanismene i den aktuelle syklusen.
Følgende eksempel skriver teksten " Hello world " til utgangsterminalen.
setter "Hello World"Her er et program semantisk identisk med det forrige, men som bruker Ruby-objektparadigmet.
klasse Greeter attr_reader : mottaker def initialize ( mottaker ) @recipient = mottaker slutt def greet setter "Hei # { mottaker } " slutt slutt greeter = Greeter . ny ( "verden" ) hilsen . hilse påFunksjonen som er definert nedenfor, fungerer forskjellig avhengig av meldingene som argumentet svarer på.
def text_of ( widget ) if widget . svare til? : bildetekst widget . bildetekst elsif widget . svare til? : tekst widget . tekst else heve "ingen tekst knyttet til widget # { widget } " sluttSløyfer i Ruby utføres vanligvis ved å bruke iteratorer, som sendes en blokk, i form av kode mellom nøkkelordene do og end , som vist i følgende eksempel,
5 . ganger setter " Hello world" slutthvor ganger metoden til objektet "nummer 5" sørger for å utføre riktig antall ganger (5, for å være presis) den angitte koden.
Når du definerer en iterator, brukes nøkkelordet yield .
klasse Heltall def times_header_and_footer setter "- BEGIN -" ganger do yield end setter "- END -" end end 5 . times_header_and_footer gjør slutt på "Hello world" .Legg merke til hvordan Integer-klassen (en standardklasse) har blitt gjenåpnet for å legge til en metode. Utgangen av skriptet er
- BEGYNNE - Hei Verden Hei Verden Hei Verden Hei Verden Hei Verden - SLUTT -Enkeltlinje- eller flerlinjekommentarer
# Dette er en kommentar = begynne Dette er en flerlinjekommentar = sluttMerk at i kommentarer med flere linjer, =beginog =endmå være på begynnelsen av linjen, uten innrykk .