summaryrefslogtreecommitdiffhomepage
path: root/sk-sk/ruby.html.markdown
diff options
context:
space:
mode:
authorLukaxFeh <32396925+LukaxFeh@users.noreply.github.com>2017-11-06 10:49:48 -0200
committerPratik Karki <predatoramigo@gmail.com>2017-11-06 18:34:48 +0545
commitbeec5bf9ac9146fec973f96be2917630d230e26b (patch)
tree993900acc4de9031bf8fdad06089464b4fdb5296 /sk-sk/ruby.html.markdown
parent2d4a8f38c739041e13e29d13d3495909828e28a6 (diff)
Fix file names (#2987)
Fix file names * fix file names * fix file names * fix file names * fix file names * fix file names * Fixed file name * fixed file name * fixed file name * fixed file name * fixed file name * fixed file name * fixed file name
Diffstat (limited to 'sk-sk/ruby.html.markdown')
-rw-r--r--sk-sk/ruby.html.markdown553
1 files changed, 0 insertions, 553 deletions
diff --git a/sk-sk/ruby.html.markdown b/sk-sk/ruby.html.markdown
deleted file mode 100644
index 799865b0..00000000
--- a/sk-sk/ruby.html.markdown
+++ /dev/null
@@ -1,553 +0,0 @@
----
-language: ruby
-filename: learnruby-sk.rb
-contributors:
- - ["David Underwood", "http://theflyingdeveloper.com"]
- - ["Joel Walden", "http://joelwalden.net"]
- - ["Luke Holder", "http://twitter.com/lukeholder"]
- - ["Tristan Hume", "http://thume.ca/"]
- - ["Nick LaMuro", "https://github.com/NickLaMuro"]
- - ["Marcos Brizeno", "http://www.about.me/marcosbrizeno"]
- - ["Ariel Krakowski", "http://www.learneroo.com"]
- - ["Dzianis Dashkevich", "https://github.com/dskecse"]
- - ["Levi Bostian", "https://github.com/levibostian"]
- - ["Rahil Momin", "https://github.com/iamrahil"]
-translators:
- - ["Juraj Kostolanský", "http://www.kostolansky.sk"]
-lang: sk-sk
----
-
-```ruby
-# Toto je komentár
-
-=begin
-Toto je viacriadkový komentár
-Nikto ho nepoužíva
-Ani ty by si nemal
-=end
-
-# V prvom rade: Všetko je objekt.
-
-# Čísla sú objekty
-
-3.class #=> Fixnum
-
-3.to_s #=> "3"
-
-
-# Základná aritmetika
-1 + 1 #=> 2
-8 - 1 #=> 7
-10 * 2 #=> 20
-35 / 5 #=> 7
-2**5 #=> 32
-
-# Aritmetika je iba syntaktickým cukrom
-# pre volanie metódy nad objektom
-1.+(3) #=> 4
-10.* 5 #=> 50
-
-# Špeciálne hodnoty sú objektami
-nil # nič
-true # pravda
-false # lož
-
-nil.class #=> NilClass
-true.class #=> TrueClass
-false.class #=> FalseClass
-
-# Rovnosť
-1 == 1 #=> true
-2 == 1 #=> false
-
-# Nerovnosť
-1 != 1 #=> false
-2 != 1 #=> true
-
-# Okrem samotného false, nil je jedinou ďalšou 'nepravdivou' hodnotou
-
-!nil #=> true
-!false #=> true
-!0 #=> false
-
-# Ďalšie porovnania
-1 < 10 #=> true
-1 > 10 #=> false
-2 <= 2 #=> true
-2 >= 2 #=> true
-
-# Logické operácie
-true && false #=> false
-true || false #=> true
-!true #=> false
-
-# Existujú aj alternatívne verzie logických operátorov s nižšou prioritou.
-# Tie sa využívajú ako konštrukcie pre riadenie toku na reťazenie výrazov
-# kým jeden z nich nevráti true alebo false.
-
-# `sprav_nieco_ine` sa vykoná ak bude `sprav_nieco` úspešné (vráti true)
-sprav_nieco() and sprav_nieco_ine()
-# `zaznamenaj_chybu` sa vykoná ak `sprav_nieco` neuspeje (vráti false)
-sprav_nieco() or zaznamenaj_chybu()
-
-
-# Reťazce sú objekty
-
-'Ja som reťazec'.class #=> String
-"Ja som tiež reťazec".class #=> String
-
-retazec = 'použiť interpoláciu reťazca'
-"Môžem #{retazec} pri použití dvojitých úvodzoviek"
-#=> "Môžem použiť interpoláciu reťazca pri použití dvojitých úvodzoviek"
-
-# Preferuj jednoduché úvodzovky pred dvojitými, ak je to možné
-# Dvojité úvodzovky totiž vyžadujú ďalšie výpočty
-
-# Kombinuj reťazce, ale nie s číslami
-'ahoj ' + 'svet' #=> "ahoj svet"
-'ahoj ' + 3 #=> TypeError: can't convert Fixnum into String
-'ahoj ' + 3.to_s #=> "ahoj 3"
-
-# Výpis na štandardný výstup
-puts "Píšem!"
-
-
-# Premenné
-x = 25 #=> 25
-x #=> 25
-
-# Všimni si, že priradenie vracia priradenú hodnotu
-# To umožňuje viacnásobné priradenie:
-
-x = y = 10 #=> 10
-x #=> 10
-y #=> 10
-
-# Podľa konvencie sa pre mená premenných využíva snake_case
-snake_case = true
-
-# Používaj správne (opisné) mená premenných
-cesta_ku_korenovemu_adresaru = '/dobre/meno/'
-cesta = '/zle/meno/'
-
-
-# Symboly (sú objektami)
-# Symboly sú nemenné znovupoužiteľné konštanty, ktoré sú interne
-# reprezentované ako číslo. Často sa používajú namiesto reťazcov
-# pre efektívnu reprezentáciu špecifickej hodnoty.
-
-:cakajuci.class #=> Symbol
-
-status = :cakajuci
-
-status == :cakajuci #=> true
-
-status == 'cakajuci' #=> false
-
-status == :schvaleny #=> false
-
-
-# Polia
-
-# Toto je pole
-pole = [1, 2, 3, 4, 5] #=> [1, 2, 3, 4, 5]
-
-# Polia môžu obsahovať rôzne typy objektov
-
-[1, 'ahoj', false] #=> [1, "ahoj", false]
-
-# Polia môžu byť indexované
-# Od začiatku
-pole[0] #=> 1
-pole[12] #=> nil
-
-# Podobne ako pri aritmetike, prístup prostredníctvom [var]
-# je iba syntaktickým cukrom pre volanie metódy [] nad objektom
-pole.[] 0 #=> 1
-pole.[] 12 #=> nil
-
-# Od konca
-pole[-1] #=> 5
-
-# Pomocou počiatočného indexu a dĺžky
-pole[2, 3] #=> [3, 4, 5]
-
-# Alebo rozsahom
-pole[1..3] #=> [2, 3, 4]
-
-# Pridanie prvku do pola
-pole << 6 #=> [1, 2, 3, 4, 5, 6]
-# Alebo takto
-pole.push(6) #=> [1, 2, 3, 4, 5, 6]
-
-# Skontroluje, či už je objekt v poli
-pole.include?(1) #=> true
-
-
-# Asociatívne polia (hash) sú slovníkmi s dvojicami kľúč-hodnota.
-# Asociatívne polia sú označované kučeravými zátvorkami:
-asoc_pole = { 'farba' => 'zelena', 'cislo' => 5 }
-
-asoc_pole.keys #=> ['farba', 'cislo']
-
-# V asociatívnych poliach sa rýchlo vyhľadáva pomocou kľúča
-asoc_pole['farba'] #=> 'zelena'
-asoc_pole['cislo'] #=> 5
-
-# Asking a hash for a key that doesn't exist returns nil:
-asoc_pole['nic tu nie je'] #=> nil
-
-# Od verzie Ruby 1.9 existuje špeciálna syntax,
-# pri ktorej sa využíva symbol ako kľúč
-
-nove_asoc_pole = { defcon: 3, akcia: true }
-nove_asoc_pole.keys #=> [:defcon, :akcia]
-
-# Skontroluje existenciu kľúča a hodnoty v asociatívnom poli
-nove_asoc_pole.has_key?(:defcon) #=> true
-nove_asoc_pole.has_value?(3) #=> true
-
-# Tip: Polia aj asociatívne polia sú vypočítateľné (Enumerable)
-# Zdieľajú veľa užitočných metód ako each, map, count a ďalšie
-
-
-# Štruktúry riadenia
-
-if true
- 'if podmienka'
-elsif false
- 'else if, voliteľná vetva'
-else
- 'else, tiež voliteľná vetva'
-end
-
-for pocitadlo in 1..5
- puts "iterácia #{pocitadlo}"
-end
-#=> iterácia 1
-#=> iterácia 2
-#=> iterácia 3
-#=> iterácia 4
-#=> iterácia 5
-
-# NIKTO však nepoužíva for cyklus
-# Aj ty by si mal preferovať metódu "each" a podať jej blok
-# Blok kus kódu, ktorý môžeš podať metódam ako "each"
-# Je podobný lambdám alebo anonymným funkciám v iných jazykoch
-#
-# Metóda "each" pre rozsah spustí blokpre každý element tohto rozsahu
-# Blok získava počítadlo ako parameter
-# Volanie metódy "each" s blokomvyzerá takto:
-
-(1..5).each do |pocitadlo|
- puts "iterácia #{pocitadlo}"
-end
-#=> iterácia 1
-#=> iterácia 2
-#=> iterácia 3
-#=> iterácia 4
-#=> iterácia 5
-
-# Blok môže byť uzavretý aj v kučeravých záítvorkách:
-(1..5).each { |pocitadlo| puts "iterácia #{pocitadlo}" }
-
-# Obsah dátových štruktúr môže byť tiež prechádzaný pomocou metódy "each"
-pole.each do |prvok|
- puts "#{prvok} je súčasťou pola"
-end
-asoc_pole.each do |kluc, hodnota|
- puts "#{kluc} je #{hodnota}"
-end
-
-pocitadlo = 1
-while pocitadlo <= 5 do
- puts "iterácia #{pocitadlo}"
- pocitadlo += 1
-end
-#=> iterácia 1
-#=> iterácia 2
-#=> iterácia 3
-#=> iterácia 4
-#=> iterácia 5
-
-znamka = 'B'
-
-case znamka
-when 'A'
- puts 'Len tak ďalej, chlapče'
-when 'B'
- puts 'Viac šťastia nabudúce'
-when 'C'
- puts 'Zvládneš to aj lepšie'
-when 'D'
- puts 'S odratými ušami'
-when 'F'
- puts 'Zlyhal si!'
-else
- puts 'Iný systém známkovania, čo?'
-end
-#=> "Viac šťastia nabudúce"
-
-# prípady (cases) môžu tiež využívať rozsahy
-znamka = 82
-case znamka
-when 90..100
- puts 'Hurá!'
-when 80...90
- puts 'Dobrá práca'
-else
- puts 'Zlyhal si!'
-end
-#=> "Dobrá práca"
-
-# Zaobchádzanie s výnimkami
-begin
- # kód, ktorý môže vyhodiť výnimku
- raise NoMemoryError, 'Došla ti pamäť.'
-rescue NoMemoryError => premenna_vynimky
- puts 'Nastala vynimka NoMemoryError', premenna_vynimky
-rescue RuntimeError => ina_premenna_vynimky
- puts 'Nastala vynimka RuntimeError'
-else
- puts 'Toto sa spustí, ak nenastala žiadna výnimka'
-ensure
- puts 'Táto časť kódu sa spustí vždy'
-end
-
-# Funkcie
-
-def zdvojnasob(x)
- x * 2
-end
-
-# Funkcie (a bloky) implicitne vracajú hodnotu posledného výrazu
-zdvojnasob(2) #=> 4
-
-# Zátvorky sú voliteľné ak je výsledok jednoznačný
-zdvojnasob 3 #=> 6
-
-zdvojnasob zdvojnasob 3 #=> 12
-
-def suma(x, y)
- x + y
-end
-
-# Argumenty metódy sa oddeľujú čiarkami
-suma 3, 4 #=> 7
-
-suma suma(3, 4), 5 #=> 12
-
-# yield
-# Všetky metódy majú implicitný, voliteľný parameter bloku
-# môže byť zavolaný ako kľúčové slovo 'yield'
-
-def obal
- puts '{'
- yield
- puts '}'
-end
-
-obal { puts 'ahoj svet' }
-
-# {
-# ahoj svet
-# }
-
-
-# Funkcii môžeš odovzdať blok
-# "&" označuje referenciu na tento blok
-def hostia(&blok)
- blok.call 'nejake argumenty'
-end
-
-# Tiež môžeš odovzdať zoznam argumentov, ktoré sa prevedú na pole
-# Na to sa využíva operátor "*"
-def hostia(*pole)
- pole.each { |host| puts host }
-end
-
-
-# Trieda sa definuje kľúčovým slovom class
-class Clovek
-
- # Premenná triedy. Je zdieľaná všetkými inštanciami tejto triedy.
- @@druh = 'H. sapiens'
-
- # Jednoduchý inicializátor
- def initialize(meno, vek = 0)
- # Priradí argument k premennej inštancie "meno"
- @meno = meno
- # Ak nie je uvedený vek, použije sa špecifikovaná predvolená hodnota
- @vek = vek
- end
-
- # Jednoduchá metóda pre nastavenie hodnoty premennej
- def meno=(meno)
- @meno = meno
- end
-
- # Jednoduchá metóda pre získanie hodnoty premennej
- def meno
- @meno
- end
-
- # Vyššie uvedená funkcionalita môže byť zapúzdrená použitím
- # metódy attr_accessor
- attr_accessor :meno
-
- # Metódy pre nastavenie a získanie hodnoty premennej môžu byť vytvorené
- # aj individuálne
- attr_reader :meno
- attr_writer :meno
-
- # Metóda triedy používa kľúčové slovo self pre odlíšenie
- # od metód inštancií. Môže byť volaná iba nad triedou, nie inštanciou.
- def self.povedz(sprava)
- puts sprava
- end
-
- def druh
- @@druh
- end
-end
-
-
-# Vytvorenie inštancie triedy
-jim = Clovek.new('Jim Halpert')
-
-dwight = Clovek.new('Dwight K. Schrute')
-
-# Skúsme zavolať zopár metód
-jim.druh #=> "H. sapiens"
-jim.meno #=> "Jim Halpert"
-jim.meno = "Jim Halpert II" #=> "Jim Halpert II"
-jim.meno #=> "Jim Halpert II"
-dwight.druh #=> "H. sapiens"
-dwight.meno #=> "Dwight K. Schrute"
-
-# Volanie metódy triedy
-Clovek.povedz('Ahoj') #=> "Ahoj"
-
-# Rozsah platnosti premennej je definovaná spôsobom, akým ju nazveme.
-# Premenné začínajúce znakom $ majú globálnu platnosť.
-$premenna = "Ja som globálna premenná"
-defined? $premenna #=> "global-variable"
-
-# Premenné začínajúce znakom @ majú platnosť v rámci inštancie
-@premenna = "Ja som premenná inštancie"
-defined? @premenna #=> "instance-variable"
-
-# Premenné začínajúce znakmi @@ majú platnosť v rámci triedy
-@@premenna= "Ja som premenná triedy"
-defined? @@premenna #=> "class variable"
-
-# Premenné začínajúce veľkým písmenom sú konštanty
-Premenna = "Ja som konštanta"
-defined? Premenna #=> "constant"
-
-# Trieda je tiež objektom v ruby, takže aj ona môže mať premenné inštancie.
-# Premenná triedy je zdieľaná triedou a jej nasledovníkmi.
-
-# Základná trieda
-class Clovek
- @@foo = 0
-
- def self.foo
- @@foo
- end
-
- def self.foo=(hodnota)
- @@foo = hodnota
- end
-end
-
-# Odvodená trieda
-class Pracovnik < Clovek
-end
-
-Clovek.foo # 0
-Pracovnik.foo # 0
-
-Clovek.foo = 2 # 2
-Pracovnik.foo # 2
-
-# Premenné inštancie triedy nie sú zdieľané jej nasledovníkmi.
-
-class Clovek
- @bar = 0
-
- def self.bar
- @bar
- end
-
- def self.bar=(hodnota)
- @bar = hodnota
- end
-end
-
-class Doktor < Clovek
-end
-
-Clovek.bar # 0
-Doktor.bar # nil
-
-module PrikladModulu
- def foo
- 'foo'
- end
-end
-
-# Vloženie modulu (include) previaže jeho metódy s inštanciou triedy.
-# Rozšírenie modulu (extend) previaže jeho metódy so samotnou triedou.
-
-class Osoba
- include PrikladModulu
-end
-
-class Kniha
- extend PrikladModulu
-end
-
-Osoba.foo # => NoMethodError: undefined method `foo' for Osoba:Class
-Osoba.new.foo # => 'foo'
-Kniha.foo # => 'foo'
-Kniha.new.foo # => NoMethodError: undefined method `foo'
-
-# Spätné volania sú vykonané pri vložení alebo rozšírení modulu
-
-module PrikladKoncernu
- def self.included(zaklad)
- zaklad.extend(MetodyTriedy)
- zaklad.send(:include, MetodyInstancie)
- end
-
- module MetodyTriedy
- def bar
- 'bar'
- end
- end
-
- module MetodyInstancie
- def qux
- 'qux'
- end
- end
-end
-
-class Nieco
- include PrikladKoncernu
-end
-
-Nieco.bar # => 'bar'
-Nieco.qux # => NoMethodError: undefined method `qux'
-Nieco.new.bar # => NoMethodError: undefined method `bar'
-Nieco.new.qux # => 'qux'
-```
-
-## Ďalšie zdroje
-
-- [Nauč sa ruby v príkladoch s úlohami](http://www.learneroo.com/modules/61/nodes/338) - Variácia tejto referencie s úlohami v prehliadači.
-- [Oficiálna dokumentácia](http://www.ruby-doc.org/core-2.1.1/)
-- [Ruby z iných jazykov](https://www.ruby-lang.org/en/documentation/ruby-from-other-languages/)
-- [Programming Ruby](http://www.amazon.com/Programming-Ruby-1-9-2-0-Programmers/dp/1937785491/) - Staršia [bezplatná edícia](http://ruby-doc.com/docs/ProgrammingRuby/) je dostupná online.
-- [Ruby Style Guide](https://github.com/bbatsov/ruby-style-guide) - Komunitná príručka odporúčaných štýlov programovania v Ruby.