Rikiavimas Ruby kalba
Perlo rikiavimo pavyzdžiai gali atrodyti sudėtingi, nes Perlo sintaksėje daug visokių @$%{},
o ir patys objektai iš tikrųjų tėra tik asociatyvieji masyvai, magišku būdu žinantys kokiam paketui jie
priklauso. Tad štai rikiavimo Ruby kalba pavyzdžiai.
Paprastas rikiavimas.
a = [0,3,5,3,1,2,4,6,2,4,5,7,3]
a.sort!
a.each{|i| print i, ' '}
(Galima tiek Perle, tiek Ruby rašyti tiesiog print a
, bet tai išves masyvo narius neatskiriant juos tarpais.
Pitonas matyt dumpina visą struktūrą tokiu atveju)
Rikiavimas su funkcija:
a = [0,3,5,3,1,2,4,6,2,4,5,7,3]
a.sort! { |x, y| x - y }
a.each{|i| print i, ' '}
Hešų masyvo rikiavimas:
a = [{'item' => 6, 'zodis' => 'ka'},
{'item' => 2, 'zodis' => 'kva'},
{'item' => 5, 'zodis' => 'kre'}]
a.sort! { |x, y| x['item'] <=> y['item'] }
a.each{|i| print "item: #{i['item']}, zodis: #{i['zodis']}\n" }
Objektų rikiavimas:
class Objektas
def initialize(skaicius) @skaicius = skaicius end
def kasastoks() print "Esu objektukas nr. #{@skaicius}\n" end
def skaicius() @skaicius end
end
a = [Objektas.new(3), Objektas.new(2), Objektas.new(19), Objektas.new(1)]
a.sort! { |x, y| x.skaicius <=> y.skaicius }
a.each { |i| i.kasastoks }
Verta pažymėti, jog Ruby laikosi visų objektinio programavimo principų, ir visi klasės kintamieji
yra privatūs (t.y. skirtingai nuo Python, juos galima pasiekti tik iš pačios klasės aprašymo)