summaryrefslogtreecommitdiffhomepage
path: root/hu-hu/ruby.html.markdown
diff options
context:
space:
mode:
authorLeonardy Kristianto <alendory@gmail.com>2015-10-28 02:14:30 +0800
committerLeonardy Kristianto <alendory@gmail.com>2015-10-28 02:14:30 +0800
commitf1d18e7e493c468f372598620837fedfb07271bf (patch)
tree30b5f717949ed5d995d9b87c465650cf0a131119 /hu-hu/ruby.html.markdown
parent3015cfb4367ffe7e06df5232cb4aa5924194715d (diff)
Rename ruby.html.markdown to ruby-hu.html.markdown
Diffstat (limited to 'hu-hu/ruby.html.markdown')
-rw-r--r--hu-hu/ruby.html.markdown555
1 files changed, 0 insertions, 555 deletions
diff --git a/hu-hu/ruby.html.markdown b/hu-hu/ruby.html.markdown
deleted file mode 100644
index 169f2b8e..00000000
--- a/hu-hu/ruby.html.markdown
+++ /dev/null
@@ -1,555 +0,0 @@
----
-language: ruby
-lang: hu-hu
-filenev: learnruby.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:
- - ["Zsolt Prontvai", "https://github.com/prozsolt"]
----
-
-```ruby
-# Ez egy komment
-
-=begin
-Ez egy többsoros komment
-Senki sem használja
-Neked sem kellene
-=end
-
-# Először is: Minden objektum
-
-# A számok objektumok
-
-3.class #=> Fixnum
-
-3.to_s #=> "3"
-
-
-# Néhány alapvető számtani művelet
-1 + 1 #=> 2
-8 - 1 #=> 7
-10 * 2 #=> 20
-35 / 5 #=> 7
-2**5 #=> 32
-
-# A számtani művelet csak szintaktikus cukor
-# az objektumon történő függvény hívásra
-1.+(3) #=> 4
-10.* 5 #=> 50
-
-# A speciális értékek objektumok
-nil # Nincs itt semmi látnivaló
-true # igaz
-false # hamis
-
-nil.class #=> NilClass
-true.class #=> TrueClass
-false.class #=> FalseClass
-
-# Egyenlőség
-1 == 1 #=> true
-2 == 1 #=> false
-
-# Egyenlőtlenség
-1 != 1 #=> false
-2 != 1 #=> true
-
-# A false-on kívül, nil az egyetlen hamis érték
-
-!nil #=> true
-!false #=> true
-!0 #=> false
-
-# Még több összehasonlítás
-1 < 10 #=> true
-1 > 10 #=> false
-2 <= 2 #=> true
-2 >= 2 #=> true
-
-# Logikai operátorok
-true && false #=> false
-true || false #=> true
-!true #=> false
-
-# A logikai operátoroknak alternatív verziójuk is van sokkal kisebb
-# precedenciával. Ezeket arra szánták, hogy több állítást összeláncoljanak
-# amíg egyikük igaz vagy hamis értékkel nem tér vissza.
-
-# `csinalj_valami_mast` csak akkor fut le, ha `csinalj_valamit` igaz értékkel
-# tért vissza.
-csinalj_valamit() and csinalj_valami_mast()
-# `log_error` csak akkor fut le, ha `csinalj_valamit` hamis értékkel
-# tért vissza.
-csinalj_valamit() or log_error()
-
-
-# A sztringek objektumok
-
-'Én egy sztring vagyok'.class #=> String
-"Én is egy sztring vagyok".class #=> String
-
-helykitolto = 'interpolációt használhatok'
-"Sztring #{helykitolto}, ha dupla időzőjelben van a sztringem"
-#=> "Sztring interpolációt használhatok, ha dupla időzőjelben van a sztringem"
-
-# A szimpla idézőjelet preferáljuk, ahol csak lehet,
-# mert a dupla idézőjel extra számításokat végez.
-
-# Kombinálhatunk sztringeket, de nem számokkal
-'hello ' + 'world' #=> "hello world"
-'hello ' + 3 #=> TypeError: can't convert Fixnum into String
-'hello ' + 3.to_s #=> "hello 3"
-
-# kiírás a kimenetre
-puts "Írok"
-
-# Változók
-x = 25 #=> 25
-x #=> 25
-
-# Értékadás az adott értékkel tér vissza
-# Ez azt jelenti, hogy használhatunk többszörös értékadást:
-
-x = y = 10 #=> 10
-x #=> 10
-y #=> 10
-
-# Konvencióból, snake_case változó neveket használj
-snake_case = true
-
-# Leíró változó neveket használj
-ut_a_projekt_gyokerehez = '/jo/nev/'
-ut = '/rossz/nev/'
-
-# A szimbólumok (objektumok)
-# A szimbólumok megváltoztathatatlan, újra felhasználható konstans,
-# mely belsőleg egész számként reprezentált. Sokszor sztring helyett használják,
-# hogy effektíven közvetítsünk konkrét, értelmes értékeket
-
-:fuggoben.class #=> Symbol
-
-statusz = :fuggoben
-
-statusz == :fuggoben #=> true
-
-statusz == 'fuggoben' #=> false
-
-statusz == :jovahagyott #=> false
-
-# Tömbök
-
-# Ez egy tömb
-tomb = [1, 2, 3, 4, 5] #=> [1, 2, 3, 4, 5]
-
-# A tömmbök különböző tipusú dolgokat tartalmazhat
-
-[1, 'hello', false] #=> [1, "hello", false]
-
-# Tömbök indexelhetőek
-# Az elejéről
-tomb[0] #=> 1
-tomb[12] #=> nil
-
-# Akárcsak a számtani műveletek [var] hozzáférés
-# is csak szintaktikus cukor
-# a [] függvény hívására az objektumon
-tomb.[] 0 #=> 1
-tomb.[] 12 #=> nil
-
-# A végéről
-tomb[-1] #=> 5
-
-# Kezdőértékkel és hosszal
-tomb[2, 3] #=> [3, 4, 5]
-
-# Tömb megfordítása
-a=[1,2,3]
-a.reverse! #=> [3,2,1]
-
-# Vagy tartománnyal
-tomb[1..3] #=> [2, 3, 4]
-
-# Így adhatunk a tömbhöz
-tomb << 6 #=> [1, 2, 3, 4, 5, 6]
-# Vagy így
-tomb.push(6) #=> [1, 2, 3, 4, 5, 6]
-
-# Ellenőrízük, hogy a tömb tartalmaz egy elemet
-tomb.include?(1) #=> true
-
-# Hash-ek a ruby elsődleges szótárjai kulcs/érték párokkal
-# Hash-eket kapcsos zárójellel jelöljük
-hash = { 'szin' => 'zold', 'szam' => 5 }
-
-hash.keys #=> ['szin', 'szam']
-
-# Hash-ekben könnyen kreshetünk a kulcs segítségével:
-hash['szin'] #=> 'zold'
-hash['szam'] #=> 5
-
-# Nem létező kulcsra keresve nil-t kapunk:
-hash['nincs itt semmi'] #=> nil
-
-# Ruby 1.9-től, egy külnleges szintaxist is használhatunk a szimbólumot
-# használunk kulcsnak
-
-uj_hash = { defcon: 3, action: true }
-
-uj_hash.keys #=> [:defcon, :action]
-
-# Ellenőrizzük, hogy az adott kulcs és érték bene-e van a hash-ben
-uj_hash.has_key?(:defcon) #=> true
-uj_hash.has_value?(3) #=> true
-
-# Tip: A tömbök és hash-ek is felsorolhatóak
-# Sok közös függvényük van, akár az each, map, count, és több
-
-# Kontroll Struktúrák
-
-if true
- 'ha állítás'
-elsif false
- 'különben ha, opcionális'
-else
- 'különben, szintén opcionális'
-end
-
-for szamlalo in 1..5
- puts "iteracio #{szamlalo}"
-end
-#=> iteracio 1
-#=> iteracio 2
-#=> iteracio 3
-#=> iteracio 4
-#=> iteracio 5
-
-# HOWEVER, No-one uses for loops.
-# Instead you should use the "each" method and pass it a block.
-# A block is a bunch of code that you can pass to a method like "each".
-# It is analogous to lambdas, anonymous functions or closures in other
-# programming languages.
-#
-# The "each" method of a range runs the block once for each element of the range.
-# The block is passed a counter as a parameter.
-# Calling the "each" method with a block looks like this:
-
-(1..5).each do |counter|
- puts "iteration #{counter}"
-end
-#=> iteration 1
-#=> iteration 2
-#=> iteration 3
-#=> iteration 4
-#=> iteration 5
-
-# You can also surround blocks in curly brackets:
-(1..5).each { |counter| puts "iteration #{counter}" }
-
-# The contents of data structures can also be iterated using each.
-array.each do |element|
- puts "#{element} is part of the array"
-end
-hash.each do |key, value|
- puts "#{key} is #{value}"
-end
-
-counter = 1
-while counter <= 5 do
- puts "iteration #{counter}"
- counter += 1
-end
-#=> iteration 1
-#=> iteration 2
-#=> iteration 3
-#=> iteration 4
-#=> iteration 5
-
-jegy = '4'
-
-case jegy
-when '5'
- puts 'Kitünő'
-when '4'
- puts 'Jó'
-when '3'
- puts 'Közepes'
-when '2'
- puts 'Elégsége'
-when '1'
- puts 'Elégtelen'
-else
- puts 'Alternatív értékelés, hm?'
-end
-#=> "Jó"
-
-# case-ek tartományokat is használhatnak
-jegy = 82
-case jegy
-when 90..100
- puts 'Hurrá!'
-when 80...90
- puts 'Jó munka'
-else
- puts 'Megbuktál!'
-end
-#=> "Jó munka"
-
-# kivétel kezelés:
-begin
- # kód ami kivételt dobhat
- raise NoMemoryError, 'Megtelt a memória'
-rescue NoMemoryError => kivetel_valtozo
- puts 'NoMemoryError-t dobott', kivetel_valtozo
-rescue RuntimeError => mas_kivetel_valtozo
- puts 'RuntimeError dobott most'
-else
- puts 'Ez akkor fut ha nem dob kivételt'
-ensure
- puts 'Ez a kód mindenképpen lefut'
-end
-
-# Függvények
-
-def ketszeres(x)
- x * 2
-end
-
-# Függvények (és egyébb blokkok) implicit viszatértnek az utolsó értékkel
-ketszeres(2) #=> 4
-
-# Zárójelezés opcionális, ha az eredmény félreérthetetlen
-ketszeres 3 #=> 6
-
-ketszeres ketszeres 3 #=> 12
-
-def osszeg(x, y)
- x + y
-end
-
-# Függvény argumentumait vesszővel választjuk el.
-osszeg 3, 4 #=> 7
-
-osszeg osszeg(3, 4), 5 #=> 12
-
-# yield
-# Minden függvénynek van egy implicit, opcionális block paramétere
-# 'yield' kulcsszóval hívhatjuk
-
-def korulvesz
- puts '{'
- yield
- puts '}'
-end
-
-korulvesz { puts 'hello world' }
-
-# {
-# hello world
-# }
-
-
-# Fuggvénynek átadhatunk blokkot
-# "&" jelöli az átadott blokk referenciáját
-def vendegek(&block)
- block.call 'valami_argumentum'
-end
-
-# Argumentum lisát is átadhatunk, ami tömbé lesz konvertálva
-# Erre való a splat operátor ("*")
-def vendegek(*array)
- array.each { |vendeg| puts vendeg }
-end
-
-# Osztályt a class kulcsszóval definiálhatunk
-class Ember
-
- # Az osztály változó. Az osztály minden példánnyával megvan osztva
- @@faj = 'H. sapiens'
-
- # Alap inicializáló
- def initialize(nev, kor = 0)
- # Hozzárendeli az argumentumot a "nev" példány változóhoz
- @nev = nev
- # Ha nem adtunk meg kort akkor az alapértemezet értéket fogja használni
- @kor = kor
- end
-
- # Alap setter függvény
- def nev=(nev)
- @nev = nev
- end
-
- # Alap getter függvény
- def nev
- @nev
- end
-
- # A fönti funkcionalítást az attr_accessor függvénnyel is elérhetjük
- attr_accessor :nev
-
- # Getter/setter függvények egyenként is kreálhatóak
- attr_reader :nev
- attr_writer :nev
-
- # Az osztály függvények "self"-et hasznalnak, hogy megkülönböztessék magukat a
- # példány függvényektől
- # Az osztályn hívhatóak, nem a példányon
- def self.mond(uzenet)
- puts uzenet
- end
-
- def faj
- @@faj
- end
-end
-
-
-# Példányosítsuk az osztályt
-jim = Ember.new('Jim Halpert')
-
-dwight = Ember.new('Dwight K. Schrute')
-
-# Hívjunk meg pár függvényt
-jim.faj #=> "H. sapiens"
-jim.nev #=> "Jim Halpert"
-jim.nev = "Jim Halpert II" #=> "Jim Halpert II"
-jim.nev #=> "Jim Halpert II"
-dwight.faj #=> "H. sapiens"
-dwight.nev #=> "Dwight K. Schrute"
-
-# Hívjuk meg az osztály függvényt
-Ember.mond('Hi') #=> "Hi"
-
-# Változók szókjait az elnevezésük definiálja
-# $ kezdetű változók globálisak
-$var = "Én egy globális változó vagyok"
-defined? $var #=> "global-variable"
-
-# Változók amik @-al kezdődnek példány szkópjuk van
-@var = "Én egy példány változó vagyok"
-defined? @var #=> "instance-variable"
-
-# Változók amik @@-al kezdődnek példány szkópjuk van
-@@var = "Én egy osztály változó vagyok"
-defined? @@var #=> "class variable"
-
-# Változók amik nagy betűvel kezdődnek a konstansok
-Var = "Konstans vagyok"
-defined? Var #=> "constant"
-
-# Az osztály is objetum. Tehát az osztálynak lehet példány változója
-# Az osztályváltozón osztozik minden pédány és leszármazott
-
-# Ős osztály
-class Ember
- @@foo = 0
-
- def self.foo
- @@foo
- end
-
- def self.foo=(ertek)
- @@foo = ertek
- end
-end
-
-# Leszarmazott osztály
-class Dolgozo < Ember
-end
-
-Ember.foo # 0
-Dolgozo.foo # 0
-
-Ember.foo = 2 # 2
-Dolgozo.foo # 2
-
-# Az osztálynak példány változóját nem látja az osztály leszármazottja.
-
-class Ember
- @bar = 0
-
- def self.bar
- @bar
- end
-
- def self.bar=(ertek)
- @bar = ertek
- end
-end
-
-class Doctor < Ember
-end
-
-Ember.bar # 0
-Doctor.bar # nil
-
-module ModulePelda
- def foo
- 'foo'
- end
-end
-
-# Modulok include-olása a fügvényeiket az osztály példányaihoz köti.
-# Modulok extend-elésa a fügvényeiket magához az osztályhoz köti.
-
-class Szemely
- include ModulePelda
-end
-
-class Konyv
- extend ModulePelda
-end
-
-Szemely.foo # => NoMethodError: undefined method `foo' for Szemely:Class
-Szemely.new.foo # => 'foo'
-Konyv.foo # => 'foo'
-Konyv.new.foo # => NoMethodError: undefined method `foo'
-
-# Callback-ek végrehajtódnak amikor include-olunk és extend-elünk egy modult
-
-module ConcernPelda
- def self.included(base)
- base.extend(ClassMethods)
- base.send(:include, InstanceMethods)
- end
-
- module ClassMethods
- def bar
- 'bar'
- end
- end
-
- module InstanceMethods
- def qux
- 'qux'
- end
- end
-end
-
-class Valami
- include ConcernPelda
-end
-
-Valami.bar # => 'bar'
-Valami.qux # => NoMethodError: undefined method `qux'
-Valami.new.bar # => NoMethodError: undefined method `bar'
-Valami.new.qux # => 'qux'
-```
-
-## Egyéb források
-
-- [Learn Ruby by Example with Challenges](http://www.learneroo.com/modules/61/nodes/338)
-- [Official Documentation](http://www.ruby-doc.org/core-2.1.1/)
-- [Ruby from other languages](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/) - A régebbi [ingyenes változat](http://ruby-doc.com/docs/ProgrammingRuby/) elérhető online.
-- [Ruby Style Guide](https://github.com/bbatsov/ruby-style-guide)