Ruby-opas
Mureakuha
Sisällysluettelo |
Ruby-opas
Alkusanat
Tutustuin koko kieleen ensimmäistä kertaa eilen, joten suhtautukaa tähän vähäiseenkään tietoon näin oppaan alkuvaiheessa hyvin kriittisesti. Toivottavasti tämä luo kuitenkin jotain pohjaa oikeasti hyvälle Ruby-oppaalle.
Edellisestä oppaastani (PHP-opas) tuli vähän palautetta että se on liikaa referenssimainen, joten samaan asiaan useammatkin esimerkit selitysten kera ovat tervetulleita. Samoin toivottavasti tämä "lyhyt" kirjoitustyyli kannustaa useampia kirjoittajia liittymään projektiin, varsinkin kun oma Ruby tietämykseni on aika alhaisella tasolla.
Jos oikeasti haluat oppia Rubyä niin tässä on muutamia erinomaisia linkkejä:
- Learning Ruby - Paljon hyviä esimerkkejä, sopii myös ensimmäistä kieltään aloittelevalle.
- Why´s (Poignant) Guide to Ruby - Toinen opas, kaunokirjallisempi, asioita yritetään selvittää käyttäen vertailuna esimerkiksi englannin-kieltä. Sisältää myös sarjakuvia.
- Ruby-Doc - Enemmän tai vähemmän virallinen referenssi Rubyn perusmethodeista ja yleisimmistä kirjastoista.
Rubyn asennus
Windows
Hae asennuspaketti vaikka RubyForgesta ja asenna se. Samalla kannattaa asentaa myös editori/kehitysympäristö SciTE joka tulee asennuspaketin matkassa.
Rubyn ajaminen
Reaaliaikainen ajoympäristö irb
Asennuksen jälkeen helpoin tapa aloittaa Ruby-koodin ajaminen on tehdä se reaaliaikaisessa ajoympäristössä, jonka saat päälle komentokehoitteessa seuraavalla käskyllä:
- irb --simple-prompt
Edessäsi pitäisi olla seuraavan näköinen ruutu:
>> _
Tähän voit nyt syöttää Rubyä, ja tulkki käsittelee antamasi koodin. Sen tuloksen tulkki antaa => merkinnän jälkeen. Kirjoitan nekin nyt näihin esimerkkeihin. Nyt voimmekin ottaa ensimmäiset askeleet Rubyllä ohjelmoimisessa, tehdään vaikka muutamia peruslaskutoimituksia, syötetään ensin vaikka laskutoimitus 1 + 1
>> 1 + 1 => 2
Seuraavaksi vaikka kerto- ja jakolaskuja. Huomaa että nyt kirjoitan useamman käskyn yhteen esimerkkiin:
>> 5 * 5 => 25 >> 100 / 4 => 25 >> 60 + 10 / 2 => 65
Viimeisestä esimerkistä huomaa että tulkki noudattaa oikeaoppisesti laskujärjestystä: jakolasku ennen yhteenlaskua. Sulkeilla voimme vaikuttaa laskujärjestykseen:
>> (60 + 10) / 2 => 35
Ruby tukee myös muita laskutoimituksia, kuten potensseja (**) sekä jakojäännöksiä (%):
>> 3**3 => 27 >> 10 % 3 => 1
Ensin korotimme kolmosen kolmanteen potenssiin, joka on 27. Sen jälkeen haimme 10 / 3 jakojäännöksen joka on 1.
Tiedostosta
Tee uusi tiedosto, vaikka ensimmainen.rb. Voit muokata sitä millä tahansa editorilla, vaikkapa mukana tulevalla SciTE:llä. Kirjoita haluamasi koodit ja tallenna. Tehdään yksinkertainen esimerkkitiedosto ensimmainen.rb:
muuttuja = "Tämä tuli tiedostosta ensimmainen.rb" puts muuttuja
Nyt tallenna tiedosto. Nyt voit joko ajaa sen ikkunamanageriasi käyttäen tuplaklikkaamalla, tai ajamalla sen komentokehoitteesta seuraavalla käskyllä:
- ruby ensimmainen.rb
Tuloksena pitäisi siis olla jotain tälläistä:
c:\ruby> ruby ensimmainen.rb Tämä tuli tiedostosta ensimmainen.rb
Skandisi voivat näkyä väärin, mutta älä anna sen haitata tässä vaiheessa.
Syntaksi
Lause alkaa uudesta rivistä ja päättyy rivin loppuun. Useamman lauseen saa halutessaan samalle riville erottamalla ne ;-merkillä.
Kommentit
Kommentti on #-merkistä rivin loppuun.
Muuttujat
Muuttujat luodaan kun niille annetaan arvo. Muuttujien nimeämisessä tärkein rajoitus on se että sen tulee alkaa pienellä kirjaimella. Muuttujien nimet voivat sisältää isoja tai pieniä kirjaimia (a-z), numeroita (0-9) sekä alaviivoja.
muuttuja = 1 #sijoittaa muuttujaan muuttuja kokonaisluvun 1
Muuttujan voi tulostaa komennolla puts.
muuttuja = "Terve!" #sijoittaa muuttujaan muuttuja merkkijonon "Terve!" puts muuttuja #tulostaa "Terve!"
Sama tehtynä reaaliaikaisessa ajoympäristössä:
>> muuttuja = "Terve!" => "Terve!" >> puts muuttuja Terve! => nil
Tässä viimeisen rivin nil on se arvo minkä puts palauttaa, ja puts ei palauta mitään, se vain tulostaa ruudulle tekstiä.
Muuttujatyypit
Merkkijono (string)
Merkkijono määritellään asettamalla merkkejä joko lainausmerkkien " tai hipsujen väliin '.
merkkijono = "Jotain tekstiä" toinen_merkkijono = "Jotain muuta tekstiä"
Kokonaisluku (integer)
Kokonaisluku on luku jolla ei desimaaleja. Kokonaislukuja ovat esimerkiksi 4, 20410, 12 ja 0.
kokonaisluku = 5 toinen_kokonaisluku = 10 kolmas_kokonaisluku = toinen_kokonaisluku / kokonaisluku #saa arvon kokonaisluku 2
Huomaa että kokonaisluvuilla tehdyt laskutoimitukset palauttavat aina kokonaisluvun.
puts 5 / 2 #tulostaa kokonaisluvun 2
Liukuluvut (float)
Liukuluvut ovat lukuja jotka voivat sisältää myös desimaaleja.
puts 5.0 / 2.0 #tulostaa liukuluvun 2.5
Taulukko (array)
Taulukkoihin voi sijoittaa useita arvoja. Arvot voivat olla mitä muuttujatyyppiä tahansa, myös uusia taulukoita. Taulukkoja sisältäviä taulukkoja kutsutaan moniulotteisiksi taulukoiksi. Taulukon yksittäistä arvoa kutsutaan soluksi. Jokaiselle solulle on uniikki avain (indeksi, key) jolla kyseisen arvon löytää taulukosta. Avaimet määritetään automaattisesti, ensimmäisen solun avain on 0, toisen 1 jne. Taulukko määritellään hakasulkujen ([ ]) väliin, ja sen solut erotetaan toisistaan pilkuilla.
taulukko = [ "nolla", "yksi", "kaksi", "kolme" ] puts taulukko[0] #tulostaa ensimmäisen solun arvon, eli "nolla"
Taulukkoon voidaan sijoittaa uusia soluja myös seuraavasti:
taulukko = [ "nolla", "yksi", "kaksi", "kolme" ] taulukko[4] = "neljä" puts taulukko[4] #tulostaa neljännen solun arvon, eli "neljä"
Hash (hash, dictionary)
Hashin erottaa taulukoista se ominaisuus että hashin avaimet voidaan itse määrittää. Avaimet voivat olla mitä muuttujatyyppiä tahansa.
Ensimmäisessä esimerkissä ensin määritämme muuttujan muuttuja olevan hash-tyypin muuttuja jossa on kaksi arvoa: 1 ja 2. Määritämme näille myös avaimet: "eka" ja "toka". Arvon 1 löytää siis avaimella "eka", josta on esimerkki esimerkin toisella rivillä. Arvon kaksi löytää siis avaimella "toka".
muuttuja = Hash["eka" => 1, "toka" => 2] puts muuttuja["eka"] #tulostaa "1"
Sama hieman eri tavalla tehtynä:
muuttuja = { } #esittely
muuttuja["eka"] = 1 #asetaan ensimmäinen arvo avaimelle "eka"
muuttuja["toka"] = 2 #asetaan toinen arvo avaimelle "toka"
puts muuttuja["eka"] #tulostaa "1"
Muuttujan tyypin muuntaminen
Muuttujia voi muuttaa tyypiltään toisiksi to_i (muuttaa muuttujan kokonaisluvuksi), to_s (muuttaa muuttujan merkkijonoksi) ja to_f (muuttaa muuttujan liukuluvuksi) methodeilla.
luku = 678 puts luku.to_s.reverse #tulostaa 876, eli ensin muuttuja muutetaan merkkijonoksi, ja sitten se käännetään ympäri .reverse methodilla puts luku.to_f + 0.5 #tulostaa 678.5
Lisäksi merkkijonon voi muuttaa taulukoksi split-methodilla.
merkkijono = "Tämä sisältää tekstiä"
taulukko = merkkijono.split(" ") #muuttuja "taulukko" sisältää nyt kolme solua: [ "Tämä", "sisältää", "tekstiä" ]
Taulukon sekä hashin voi taas yhdistää tekstiksi to_s methodilla.
| Tämä artikkeli on tynkä. Voit auttaa Kuhaa täydentämällä tämän sivun tietoja. |
