Ero sivun ”Ruby” versioiden välillä
[katsottu versio] | [katsottu versio] |
Poistettu sisältö Lisätty sisältö
Ei muokkausyhteenvetoa Merkkaukset: Visuaalinen muokkaus Mobiilimuokkaus mobiilisivustosta Edistynyt mobiilimuokkaus |
p Botti: Korvaa vanhentunut <source>-tagi ja "enclose"-parametri Merkkaus: wd-käytössä |
||
Rivi 48:
Kielen kaikki elementit ovat objekteja, myös funktiot ja numerot. Esimerkki:
<
1.class # => Fixnum: numero 1 on olioluokan Fixnum instanssi
7.times do
Rivi 54:
end
# tulostaa seitsemän +-merkkiä.
</syntaxhighlight>
Lohkot ovat Rubyssa tärkeä käsite. Niiden avulla toteutetaan muun muassa iteraatio, ja ne ovat hyvin käteviä luotaessa takaisinkutsumetodeja. Lohko voidaan määritellä joko symbolien { } avulla tai do ... end -rakenteella:
<
[ 3, 1, 7, 0 ].sort.reverse.each do |i|
print i*i
end
# tulostaa "49910"
</syntaxhighlight>
Yllä olevassa lista ensin järjestetään ja käännetään ja lopuksi arvot sijoitetaan yksi kerrallaan i:hin ja suoritetaan print i*i.
Jokainen Rubyn metodi käsittää implisiittisenä parametrina lohkon, jota käyttäjä voi kutsua metodin sisällä yield-lauseen avulla. Esimerkiksi seuraava lohko suoritetaan kolme kertaa:
<
def kolme_kertaa
yield
Rivi 75:
print "Heippa"
end
</syntaxhighlight>
Monet asiat Rubyssa näyttävät tavanomaiselta ohjelmointikieleltä, mutta todellinen implementaatio vaatii niiden muuttamista oliomallin mukaiseksi sisäisesti (usein ohjelmointikielissä tätä kutsutaan syntaktiseksi sokeroinniksi). Esimerkiksi "1+1" on vain merkintä olion "1" metodikutsulle "+" argumenttina toinen olio "1". Sama pätee Rubyssa moneen asiaan, mikä voi jättää aloittelijalle hieman sekavan kuvan kielestä.
|