Ruby/Kodo blokai ir ciklai

Iš Wikibooks.
Jump to navigation Jump to search

Ruby kalba nuo pat pradžių buvo kurta palengvinti programavimo darbą ir padaryti jį malonesniu. Programuoti ciklus, apibrėžti papildomus kintamuosius ciklui, kurie cikle didėja, yra monotoniška ir nuobodi procedūra. Galima to nenaudoti Ruby kalboje, bet joje senieji ciklai (while, for, ...) išlieka su labiau elegantiška sintakse. Čia pvz. klasikinio kodo, bet Ruby kalba:

$i = 0;
$num = 3;
while $i < $num  do
   puts("hi" );
   $i +=1;
end

Ženklus $(); galima nutrinti. Ruby (); galima dėti, galima ne. $ turi tam tikras funkcijas tik naujame objektiniame kode. Toliau darysim viska dar labiau Ruby'škai. Ruby kodo blokas yra kodas apsuptas {} skliaustais. Taip pažymima, kad visas blokas yra tam tikras kodo vienetas naudojamas kartu. Prieš skliaustus dažniausiai eina koks nors ciklo iškvietimas ar pan.

Times metodas[keisti]

Pirmiausiai times:

3.times {puts "hi"}

Labai suprantamas kodas: kartoti tris kartus. Žinoma vietoj 3 galima naudoti apibrėžtą kintamąjį:

x=3
x.times {puts x}

Each metodas[keisti]

Kitas būdas each metodas. Ciklas atliekamas su visais sąrašo elementais kiek tik jų yra. Elementai žingsniškai perkeliami į naują kintamąjį nurodytą su ||. Skaičiai čia net nesvarbu.

a=['Jonas', 'Petras']
a.each { |zm| puts zm+' ejo'}