Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Web Analytics
Cookie Policy Terms and Conditions Ruby programozási nyelv - Wikipédia

Ruby programozási nyelv

A Wikipédiából, a szabad lexikonból.

A Ruby egy teljesen objektum-orientált interpretált nyelv. Minden komolyabb platformon működik (természetesen interpretere telepítése után). Ingyenes free software, nyílvános forrású open-source. Egyebek mellet alkalmas ablakos alkalmazások készítésére (a Tcl/Tk segítségével), és webes alkalmazásokra is (Ruby on Rails). És típusos!

  • született: 1995
  • megalkotó: Yukihiro Matsumoto
  • fejlesztők: Yukihiro Matsumoto (és mások)
  • legfirssebb verzió: 1.8.5
  • megjelenés időpontja: 2006. augusztus 25.
  • rokonok: Smalltalk, Perl, Lisp, Python, CLU, Dylan
  • oprendszerek: Platform-független
  • licenc: Ruby License és GPL
  • honlap: www.ruby-lang.org

Tartalomjegyzék

[szerkesztés] Filozófia, ízelítő

Alapjellegét a célirányos objektumorientáltsága határozza meg. Minden objektum. Még egy szám is. Pl. az, hogy 5, ez egy objektum, s mint ilyennek, vannak saját függvényei, eljárásai. Pl. ha az 5-öt, mint egész számot (ami ugye objektum!), át akarod alakítani szöveggé (ez esetenként igen fontos, hiszen a nyelv alapvetően típusos), akkor pl. nem ilyen jellegű függvényt kell használni: IntToStr(5) – ahol a z 5 bemeneti paraméter, hanem 5.to_s.

A nyelv típusossága ellenére azonban függvénydefiníciókor nem kell meghatározni a bemeneti (és kimeneti) változók típusát. Egy függvény definíciója pl így nézhet ki:

def osszeadas a, b
  return a + b
end

Meghívása pedig így történhet:

osszeadas 1, 2            => 3

Talán feltünk az is, hogy a függvény deffiníciójánál és meghívásánal a paramétereket nem kell zárójelbe tenni. Pontosabban ez opcionális lehetőség, értelme ott van, amikor egyébként nem lehetne eldönteni, hogy a paraméterek mely függvényhez tartoznak. pl.

osszeadas 1, 2 * 3        => 7

de

osszeadas(1, 2) * 3       => 9

(Ilyenkor azonban erősen javallják, hogy a függvény neve és a paramétereit tartalmazó zárójel között ne maradjon szóköz)

További sajátossága (típusosságából adódóan) az, hogy nem végez automatikus típuskonverziót (php-n nevelkedettek nagy bánatára). Még számok között sem. Pl.:

1 / 2                     => 0

mert ő úgy gondolja, hogy ha az osztandó és az osztó is egész, akkor a hányados is az kell legyen, tehát kerekít. De:

1.0 / 2                   => 0.5
1 / 2.0                   => 0.5

Ha egy változóval van bajunk, amiről nem tudjuk ránézésre, hogy milyen típusú, de törtté akarjuk osztani, a legelegánsabb megolás ez:

a = 1
a.to_f / 2                => 0.5

Itt ugy-e a to_f függvény suttyomban valós számmá alakította az a változót.

Ami a változókat illeti: nem kell deklarálni őket (ez is olyan php-s), bárhol be lehet vezetni, és a láthatósági tartományokon belül elérhető. A változók elé nem kell semmilyen speciális karaktert tenni (mint php-ben a $), viszont a nagybetűvel kezdődő kifejezéseket szigorúan konstansnak vagy osztálynak akarja felfogni. Pl.

A = 3                     => ez rendben van, rögzített egy A konstanst
A = 4                     => idézem: „warning: already initialized constant A”

És még egy: a sorokat nem kell pontosvesszővel lezárni. De lehet. Ennek akkor van értelme, ha több utasítás van ugyanabban a sorban. Ekkor a pontosvessző utasításelválasztóként fungál.

[szerkesztés] Telepítés

[szerkesztés] Linux

[szerkesztés] Ubuntu

Tapasztalataim szerint alapból benne van, de ha mégse, akkor

sudo apt-get install ruby

Ha alapból nem tenné fel, érdemes továbbá telepíteni az irb-t is, ami egy igen kellemes parancssori interpreter.

[szerkesztés] Windows

Töltsd le a telepítőállományt a http://rubyforge.org/frs/?group_id=167 oldalról, és telepítsd. No comment.

[szerkesztés] A nyelvről szakszerűen

[szerkesztés] Osztályok

[szerkesztés] Feltételes szerkezete, ciklusok

[szerkesztés] If (ha)

A más nyelvekben megszokotthoz hasonlóan is lehet használni, pl:

if a < b then
   c = -1
elseif a == b
   c = 0
else
   c = 1
end

Szintaktikai jellezmzők:

  • a feltételvizsgálatot nem kötlező zárójelbe tenni, persze ha összetett, az egyértelműség kedvéért érdemes csoportosítani
  • a then szót nem kötelező kiírni, csak akkor, ha a végrehajtandó utasítás azonos sorban van (az end ekkor is kötelező)

Megjegyzés: a fenti példa kizárólak didaktikai célra használandó. Ugyanis ugyanezt a tevékenységeg elvégzi a <=> összehasonlító operátor is, amely három értéket adhat vissza (-1, ha a bal oldal kisebb, 0, ha egyenlő, 1, ha nagyobb).

1 <=> 0                   => 1
1 <=> 1                   => 0
1 <=> 2                   => -1

Alternatív használat: a feltételt a végrehajtandó utasítás után is írhatjuk!

puts 'de jó' if 1 > 0     => de jó

Ha arra van szükségünk, a feltételvizsgálat értéket is tud visszaadni, például:

kimenet = if a < b then
              -1
          elseif a == b
              0
          else
              1
          end

Ha viszont csak ha-különben esettel van dolgunk, van ennek egy rövidített formája is:

kimenet = a < b ? a : b

(a feltételt a ? zárja, a két lehetséges kimenetet pedig : választja el, ezen belül persze bármilyne kifejezés szerepelhet, ami kimenetet produkál, akár függvényhívás is)

[szerkesztés] Unless (ha nem)

Létezik az if fordítottja is, az unless is. Ez értelemszerűen akkor fut le, ha a vizsgált kifejezés hamis. Példák:

unless 1 < 2
    er = 1
else
    er = 2
end

A unless után is használhatjuk a then-t, ha ugyanabban a sorban akarjuk folytatni (egyébként nem kötelező).

kim = unless 1 < 0 then 1 else 2 end

Nyílván az unless is használható az utasítás után.

a = 1 unless a == 1

Ez persze ekvivalens ezzel:

a = 1 if a != 1

Kinek melyik tetszik jobban!

[szerkesztés] While (amíg)

Amíg a feltétel igaz, végrehajtja a végrehajtani valót. Szerkezete igen egyszerű:

a = 0
while a < 10
  a += 1
  puts a
end

=> 1 2 3 4 5 6 7 8 9 10

[szerkesztés] Kivételkezelés

[szerkesztés] Beépített osztályok

[szerkesztés] A nyelv alkalmazása

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu