Ebooks, Audobooks and Classical Music from Liber Liber
a b c d e f g h i j k l m n o p q r s t u v w x y z





Web - Amazon

We provide Linux to the World


We support WINRAR [What is this] - [Download .exe file(s) for Windows]

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
Ruby - Wikipedia

Ruby

Frå Wikipedia – det frie oppslagsverket

Hello World-program i Ruby (kan gjerast enklare)
Forstørr
Hello World-program i Ruby (kan gjerast enklare)

Ruby er eit objektorientert programmeringsspråk. Det kombinerer syntaks inspirert av Ada og Perl med Smalltalk sine objektorienterte eigenskapar. Det deler òg eigenskapar med Python, Lisp og CLU. Det vart opphavleg utforma som eit tolka programmeringsspråk, men i si JRuby-utgåve kan det bli kompilert.

Innhaldsliste

[endre] Historie

Språket vart etablert av Yukihiro "Matz" Matsumoto som starta jobben med Ruby den 24. februar 1993 og lanserte det i 1995. Namnet Ruby vart valt for å peike på arven etter Perl. I følgje forfattaren vart Ruby utforma for å følgje eit prinsipp om den minste overraskinga. Med dette meiner han at språket skal vere fri for feller og inkonsistensar som pregar andre språk. I desember 2004 var siste stabile versjon 1.8.2


[endre] Filosofi

Ruby er objektorientert: Alle bitar av data er eit objekt. Dette omfattar typar andre språk ofte definerer som primitive datatypar, slik som til dømes integer. Kvar funksjon er ein metode. Alle variablar er ein referanse til eit objekt, ikkje til objektet sjølv. Ruby støttar arv og import av modular som såkalla MixIn (å endre deler av funksjonaliteten i ein klasse). Prosedyre-syntaks er inkludert, men alle slike prosedyrar skrivne utanfor ein sjølvdefinert klasse blir gjort på klassen av type Object. Sidan denne klassen er forelder til alle andre klassar, blir slike prosedyrar synlege for alle klassar og objekt.

[endre] Implementasjonar

Ruby har to hovudimplementasjonar: Den offisielle Ruby-tolkaren, som er den mest utbreidde, og JRuby, som er ein Java-basert implementasjon.

Ruby har òg vorte brukt til rammeverk for utvikling av tynne klienter for verdsveven, t.d. Ruby on rails.

[endre] Lisensiering

Ruby blir distribuert under GPL og Ruby License [1].

[endre] Eigenskaper

  • objektorientert
  • Avvikshåndtering
  • Iteratorar
  • Å sende blokker av kode som parameter (closure)
  • Overstyring av operatorar
  • Automatisk fjerning av objekt som ikkje lenger er i bruk (garbage collection)
  • Fleirtrådshandtering
  • Lasting av DLL-bibliotek (under Microsoft Windows)
  • Introspection og reflection.
  • Stort standard bibliotek.
  • Støttar innsetting av avhengigheiter.

Per dags dato manglar Ruby støtte for Unicode, men har delvis støtte for UTF-8.

[endre] Mulege overraskingar

Sjølv om Ruby er utforma etter prinsippet om den minste overraskinga er det store skilnader frå andre språk som C og Perl.

  • Lokale variablar må ha namn som startar med små bokstav, elles blir dei betrakta som konstantar.
  • 0, "" og [] er sant (true): I C blir uttrykket 0 ? 1: 0 tolka som 0. I Ruby blir dette tolka som 1. Forsvar: I Ruby returnerer mange uttrykk anten ein numerisk verdi, ein streng eller “null”. Når ein slik verdi blir tolka i ein boolsk samanheng blir berre ”null” tolka som usann (false). Kvar numerisk, streng eller array-verdi inkludert null (0, tom streng, "", eller array []) blir tolka som sann (true). Difor, som i Java, vil det ikkje fungere med C- og Perl sin automatiske konvertering av numeriske verdiar, strengar og array til boolsk usann.
  • For å indikere flyttal er det ikkje nok å legge til eit punktum (99.). Fordi nummer kan forvekslast med metodar må ein legge til ein ekstra null (99.0) eller gje opp konverteringa eksplisitt (99.to_f).
  • Der er ingen karakter datatype. Dette kan føre til uventa resultat ved kutting av strengar: ”abc”[0] gir 97 som er den numeriske ASCII-koden for den første karakteren i strengen.

[endre] Døme

Eit grunnleggande døme:

# Alt er objekt
-199.abs                                       # 199
"ruby is cool".length                          # 12
"Rick".index("c")                              # 2
"Nice Day Isn't It?".split(//).uniq.sort.join  # " '?DINaceinsty"

[endre] Lister

Eit array:

a =[1, 'hi', 3.14, 1, 2, [4, 5]]

a[2]                      # 3.14
a.reverse                 # [[4, 5], 2, 1, 3.14, "hi", 1]
a.flatten.uniq            # [1, "hi", 3.14, 2, 4, 5]

Ein hash-tabell:

hash = {'water' => 'wet', 'fire' => 'hot'}
puts hash['fire']        

hash.each_pair do |key, value| 
  puts "#{key} is #{value}"
end

# Skriv ut:             water is wet
#                     fire is hot

hash.delete_if {|key, value| key == 'water'}   # Slettar 'water' => 'wet'

[endre] Blokker og iteratorar

To måtar å opprette ei kodeblokk:

{puts "Hello, World!"}
do puts "Hello, World!" end 

Sende ei blokk som parameter (closure):

def remember &p
  @block =p
end
# Sender med ei kodeblokk som parameter og gir den eit namn
remember {|name| puts "Hello, " + name + "!"}

# Når tida er inne -- kall closure!
@block.call("Johnny")
# Prints "Hello, Johnny!"

Iterere over array og enumeratorar:

a =[1, 'hi', 3.14]
a.each {|item| puts item}     # Skriv ut kvart element
(3..6).each {|num| puts num}       # Skriv ut 1 -6.

Blokker fungerer med mange innebygde metodar:

IO.readlines('file.txt') do |line|
  # gjer noko med linja her.
end

Kvadrere 1 til 10:

(1..10).collect {|x| x*x}    => [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

[endre] Klassar

Følgjande kode definerer klassen Person. I tillegg til ’initialize’, den vanlege konstruktøren, har klassen to metodar: Ein for å overstyre <=>-operatoren for å sortere etter alder. Den andre overstyre to_s for å få korrekt formatering.

class Person
  def initialize(name, age)
    @name, @age = name, age
  end

  def <=>(person)
    @age <=> person.age
  end

  def to_s
    "#{@name} (#{@age})"
  end

  attr_reader :name, :age
end

group = [ Person.new("John", 20), 
          Person.new("Markus", 63), 
          Person.new("Ash", 16) 
        ]

puts group.sort.reverse

Koden over skriv ut ei liste sortert med den eldste først:

Markus (63)
John (20)
Ash (16)


[endre] Hello World

puts "Hello World!"

[endre] På verdsveven


Programmeringsspråk

ABC | Ada | AFL | Agora | ALGOL | APL | Assembler | awk | B | BASIC | BETA | BLISS | C | C++ | C# | Caml | Cobol | Concurrent C | CSP | D | Delphi | Erlang | Forth | Fortran | Haskell | HyperTalk | Icon| INTERCAL | Java | Lisp | Miranda | ML | Modula | NIAL | Objektorientert C | occam | OCaml | O'Haskell | Pascal | Perl | PHP | Pike | PL/I | Plankalkül | Prolog | Portal | R | Ruby | Scheme | Simula | Sina | Sisa | Smalltalk | SML | SNOBOL | Visual Basic

Our "Network":

Project Gutenberg
https://gutenberg.classicistranieri.com

Encyclopaedia Britannica 1911
https://encyclopaediabritannica.classicistranieri.com

Librivox Audiobooks
https://librivox.classicistranieri.com

Linux Distributions
https://old.classicistranieri.com

Magnatune (MP3 Music)
https://magnatune.classicistranieri.com

Static Wikipedia (June 2008)
https://wikipedia.classicistranieri.com

Static Wikipedia (March 2008)
https://wikipedia2007.classicistranieri.com/mar2008/

Static Wikipedia (2007)
https://wikipedia2007.classicistranieri.com

Static Wikipedia (2006)
https://wikipedia2006.classicistranieri.com

Liber Liber
https://liberliber.classicistranieri.com

ZIM Files for Kiwix
https://zim.classicistranieri.com


Other Websites:

Bach - Goldberg Variations
https://www.goldbergvariations.org

Lazarillo de Tormes
https://www.lazarillodetormes.org

Madame Bovary
https://www.madamebovary.org

Il Fu Mattia Pascal
https://www.mattiapascal.it

The Voice in the Desert
https://www.thevoiceinthedesert.org

Confessione d'un amore fascista
https://www.amorefascista.it

Malinverno
https://www.malinverno.org

Debito formativo
https://www.debitoformativo.it

Adina Spire
https://www.adinaspire.com