Ruby – příkazy stručně a přehledně

Chystáte se stejně jako já na programování v Ruby případně Ruby on Rails? Pak by vám mohl pomoci můj stručný přehled základních příkazů a syntaxe tohoto skriptovacího jazyka. Nejedná se však o vysvětlení principů programování a jeho prvků, nýbrž jen přehled usnadňující přechod na Ruby.

KOMENTÁŘE

# poznamka

=begin
..... komentare
=end

PROMĚNNÉ

– deklarace bez typu: promenna = 3, 3.2, ‘text’
lokální: a-z, _xxx
globální: $jmeno
vicenasobne prirazeni: a = b = 3; a,b = 1,2
zkraceny zapis: +=, -=, /=…..

KONSTANTY

– název velkými písmeny PI, CONST
– při ukládaní do nich jen varování

DATOVÉ TYPY

– interpretr sám pozná, co použít
fixnum a intbignum – stejné jako int a longint
float – desetinné číslo s ‘.’

STRING

– text v ‘text’(vypíše obsah tak jak je bez logiky) nebo „text“(je možné využít logiku či proměnné),
– spojení řetězců pomocí + nebo násobení puts ‘ab’* 3(vypíše ababab)
– metody: .length, .upcase, .downcase, .swapcase(vymění velká x malá), .reverse
– pro uložení změny je nutné text = text.funkce nebo použít vykřičník text.metoda!

ARRAY

– pole = [1,“aa“, [1,2,3]] – možnost různých datových typů
– index od 0 a lze indexovat od zadu [-cislo], pole[index]
– [] + [] spojovani poli, neexistujici prvek vrati nil
– výpis: čísla[0,3] první tři prvky od začátku, čísla[0..3] prvky s indexem 0 až 3, čísla[-3,2] dva prvky od indexu -3
– přidáni(nahrazení) do pole – pole[x] = y (pro přidání volte vyšší číslo indexu), připadne prvky mezi jsou nahrazeny nil
– funkce: pole.length, pole.reverse, pole.compact(zkrátí pole o nil prvky), opět nutny !
– vymazáni prvku – pole.delete(„a“) bez přiřazení či vykřičníku

ARRAY to STRING

text = pole.join(‘;’) – ; je rozlišovací znak, není nutné uvádět

STRING to ARRAY

pole = text.split(‘;’) – ; je rozlišovací znak, převod jen na string

FIFO
– pole s metodami buffer.push(vlozi na zacatek), buffer.shift(vezme ze zacatku)

HASH

– orientace pomoci klíčů
– hash = {„jmeno“ => „martin“, „prijmeni“ => „hruzik“, „vek“=>23},  puts hash[„vek“], přidání hash[„prace“] = „ano“, smazání hash.delete(„prace“), uplne smazani hash.clearmetody: hash.length, hash.keys(pole klíčů), hash.values(pole hodnot), hash.index(hodnota) klíč k hodnotě, hash.invert(prohodi klíče a hodnoty), hash.has_key?(„klic“), hash.has_value?(„value“) true/false<\ br>

VÝSTUP

– puts x,y,z – umi i více parametru odděluje novým řádkem
-prints x,y,z – nepřechází na nový řádek
– v uvozovkach #{5*5*cislo} – použití logiky
\\ – zpetne lomitko, \\ – apostrof ‘, \“ – uvozovky „, \b – krok zpet, \n – presun na novy řádek, \r – presun na zacatek radku, \t – tabulator
– printf stejně jako v C a přidává formátováni – printf „%0.3f“, 3.14, (%f,%d,%s)
VSTUP
– promenna = gets nebo promenna = readline
– vstup se uloží se znakem nového řádku
– odstranění posledního znaku – promenna.chop nebo promenna = gets.chop<\ br>

PŘEVOD TEXTU NA ČÍSLO

– text.to_i, „2″.to_i, gets.to_i  – převod na integer
– text.to_f, „3.44″.to_f, gets.to_f – převod na float<\ br>

ŘÍDÍCÍ STRUKTURY

– relační operátory: ==, !=, <, >, <=, >=logicke operatory: &&, ||, !
– každý if má end, máme i else, elsif
– můžeme využít i opak if – unless(podminka)
– podmínka výstupu: puts „Cislo je kladne“ if (cislo > 0)
if (cislo > 0)
puts "Cislo je kladne"
elsif (cislo == 0)  || (cislo < 0)
puts "Cislo je nekladne"
puts "No jo ale jake?"
if(cislo < 0)
puts "Cislo je zaporne"
else
puts "Cislo je nula"
end
end
case (promenna)
when 2,3,4
puts x
when 5..10
puts y * 2
else
puts "nic"
end

CYKLY

– while dokud je podmínka splněna, until dokud není splněna

while a < b
puts b
b -= a
end

…lze přepsat na
until a >= b
puts b
b -= a
end;

FOR – na čísla ale i pole

for i in (1..5)
puts i
end

for text in pole
puts text
end

TIMES:
– pro několikanásobné provedení kódu – |i| není nutné, jen se do něj uchovává pořadí provádění
5.times {
|i|  puts i+1
}

upto(downto) cislo.upto(max) {…}, step – cislo.step(do kolika, po kolika) {…}

EACH
– each array – pole.each {|promenna| kod}, pole.each_index {|i| kod}each hash
– hash.each {|klic, hodnota|}, hash.each_key {}, hash.each_value {}
– each string – text.each{|radek|} po radcich, text.each(‘, ‘) {|text|} podle rozlišovacího znaku

REGULARNÍ VÝRAZY

– uvozují se do /vyraz/
– retezec =~ /reguralni_vyraz/ pokud nalezne tak vrati index prvniho vyskytu, pokud nenajde, tak nil
– sub – aplikuje se na první nalezený výskyt retezec.sub(/reg_vyraz_co nahradit/, „cim nahradit“), retezec.sub!() ulozi
– gsub – nahradí všechny výskyty – retezec.sub!(/martin/, „ruby“)
– $n – kulatá závorka ma uvnitř reg. vyrazu speciální účinek, že obsah regularního výrazu v ní obsaženého se uloží do $n
– /author=(.*)/ uloži zbytek výrazu do $1, můžeme zavorek použit i více a budeme mít $1, $2..$n

METODY

definice:
def nazev(parametr1, parametr2,...)
return navratova_hodnota
end
volání: nazev(a,b,..)

TŘÍDY

– má vlastní proměnné i metody, metoda initialize(volá se při new) je nutná v případě, že třída má proměnné, v této metodě se naplní hodnotami

definice:
class Trida
def initialize(parametr1, parametr2,...)
@parametr1 = parametr1
@parametr2 = parametr2
end
def metoda
return parametr1 + parametr2
end
end
inicializace: moje_trida = Trida.new(parametr1, parametr2,...)

– pro vnější práci s proměnnými třídy je nutné napsat metody, nejlépe podle níže uvedeného vzoru, můžeme k nim pak přistupovat z venčí

def parametr1

return @parametr1
end
def parametr1=(nova_hodnota)
@parametr1 = nova_hodnota
end

– pokud nám ale stačí standardní přiřazení/čtení proměnné můžeme si pomoci následujícím kódem, který zajistí, že proměnnou 1 a 2 půjde číst a do 1 i zapisovat:attr_reader :parametr1, :parametr2 attr_writer :parametr1
– proměnná třídy je společná proměnná pro všechny instance (obdoba static proměnné, například čítač  instancí) a definuje se @@nazev_tridni_promenne na začátku třídy před initialize

DĚDIČNOST

definice:
class Potomek<Rodic
– redefinované metody potomka automaticky přepisují stejně nazvané metody rodiče (zejména použitelné u initialize)

ŘÍZENÍ PŘÍSTUPU

– na konec třídy je vhodné uvést nastavení přístupu k jednotlivym metodám
– public :metoda1 private :metoda2, metoda3
public – přístup povolen odkudkoliv(implicitní volba)
protected – přístup jen mezi instancemi stejné třídy
private – přístup jen v rámci instance

OŠETŘOVÁNÍ CHYB

– výjimku lze vyvolat i příkazem – raise „Moje chyba!“

begin
# kód pod kontrolou
rescue
# ošetření chyby, v $! je hláška poslední chyby
puts $!
ensure
# kód se provede vždy
end

4 Comments

  1. 24.12.2018    

    Please let me know if you’re looking for a author for your blog.
    You have some really great articles and I think I would be a good asset.
    If you ever want to take some of the load off, I’d love
    to write some content for your blog in exchange for a
    link back to mine. Please shoot me an e-mail if interested.
    Thanks!

  2. 11.9.2019    

    exactly rip nearly head http://www.cialissom.com/ unfortunately witness
    closely couple order cheap cialis overall effect
    together mode [url=http://www.cialissom.com/]cheap viagra cialis[/url] carefully sector

  3. too professional [url=http://www.viagenupi.com/]viagra pills generic[/url] out model
    almost test viagra 100mg without a doctor prescription unfortunately homework

  4. 16.9.2019    

    z http://www.cialisles.com/ cialis 20mg – everywhere que funcion hace el cialis cialis 20mg and cialis;

23 Trackbacks

  1. Braun Barzdaskutes on 23.4.2012 at 10.49
  2. Reviews blog on 25.4.2012 at 7.01
  3. Hae lainaa on 25.4.2012 at 11.59
  4. Read more on 25.4.2012 at 15.33
  5. cash advance on 26.4.2012 at 0.33
  6. Traveldiva suomi on 26.4.2012 at 18.48
  7. http://www.elektrisch-zahnbürste.de on 28.4.2012 at 12.29
  8. currency today on 2.5.2012 at 2.46
  9. how to get rid of blackheads on 2.5.2012 at 18.46
  10. how to do a pregnancy test on 3.5.2012 at 6.48
  11. metal buildings on 3.5.2012 at 12.03
  12. Shakeology cleanse on 3.5.2012 at 12.37
  13. Shakeology Review on 3.5.2012 at 13.05
  14. novoline download on 7.5.2012 at 21.30
  15. water damage michigan, water damage repairs michigan, flood repair, leaking roof, sewer backup, water damage restoration michigan, michigan repairs, flooding, on 9.5.2012 at 1.47
  16. hier gehts direkt zur seite on 9.5.2012 at 11.49
  17. vipit ja lainat on 10.5.2012 at 7.44
  18. tire reviews on 10.5.2012 at 13.48
  19. internet marketing training on 10.5.2012 at 17.46
  20. social media marketing on 10.5.2012 at 18.52
  21. how to get your ex back fast on 11.5.2012 at 7.44
  22. nachlesen on 13.5.2012 at 0.39
  23. drückst du hier on 13.5.2012 at 21.01

Napsat komentář

Vaše emailová adresa nebude zveřejněna.

Rubriky

Krátké zprávy

  • OSIsoft User Conference v Paříži 16/07/2013
    I když zrovna nepatřím mezi fanoušky Francie, tak se do země baget, sýrů a lahodného vína brzy podívám. Asi 100m od Eifelovky totiž bude 16-19 září probíhat Osisoft User Conference, kde budu svou mateřskou firmu reprezentovat. Tak snad si o Francii napravím své mínění.
My Flightdiary.net profile