Tartalomjegyzék

< Ruby

A Ruby nyelv

A Ruby nyelvről

A Ruby nyelvet Macumoto Jukihiro fejlesztette a 90 évek közepére. Első kiadása 1995-ben volt. Általános célú, objektum-orientált programozási nyelv.

Helló Világ

Készítsük el a következő állományt:

hello.rb
#!/usr/bin/ruby
# encoding: utf-8
 
print "Helló Világ\n"

Az állomány kiterjesztése: .rb

Futtatás:

ruby hello.rb

Unix alapú rendszeren még:

./hello.rb

Megjegyzések

# egysoros megjegyzés
print "egy"
=begin
Ez egy több soros
megjegyzés.
=end

Kiíratás

#!/usr/bin/ruby
 
print 40
puts 'Helló' 

Kifejezések kiértékelése:

print (3 * 4).to_s + "\n"
puts 3 * 4

Különleges karakterek

puts "egy\n"
Jelölés Jelölt karakter
\n új sor (0x0a)
\r kocsi vissza (0x0d)
\f lapdobás (0x0c)
\b visszaperjel (0x08)
\a csengőhang (0x07)
\e escape (0x1b)
\s szóköz (0x20)
\nnn oktális jelölés (n 0-7 közötti szám)
\cx, \C-x Control-x
\M-x Alt-x (c|0x80)
\M-\C-x Alt-Control-x
\x Karakter x

Változók és állandók

szam = 30
#!/usr/bin/ruby
szam = 30
eredmeny = szam * 2
puts eredmeny

Állandók

Az állandó attól állandó, hogy nagybetűvel kezdjük a nevét. A fordító azonban, csak figyelmeztetést ad.

A = 10
A = 20

Lehetséges kimenet:

./hello.rb:4: warning: already initialized constant A
./hello.rb:3: warning: previous definition of A was here

Formázott kimenet

kif.rb
#!/usr/bin/ruby
 
szam = 5
puts "Szám: %d" % szam
kif.rb
#!/usr/bin/ruby
 
szam = 54.12345
formatum = "Szám: %010.2f" % szam
puts formatum
kif.rb
#!/usr/bin/ruby
 
szam = 5
printf "Szám: %d\n", szam
kif.rb
#!/usr/bin/ruby
 
szam = 54.12345
printf "Szám: %010.2f\n", szam

Bekérés

beker.rb
#!/usr/bin/ruby
# encoding: utf-8
 
print 'Szám: ' 
szam = gets
 
eredmeny = szam.to_i * 2
 
print "eredmeny: ", eredmeny, "\n"

Szöveg bekérése:

beker.rb
#!/usr/bin/ruby
# encoding: utf-8
 
print 'Név: ' 
nev = gets.chomp

Konvertálás

szamStr = "25"
szam = szamStr.to_i
szam = 35
szamStr = szam.to_s

Szelekció

beker.rb
#!/usr/bin/ruby
# encoding: utf-8
 
print 'Szám: ' 
nev = gets.chomp
 
if nev.to_i > 100
    print "Hu, ez nagy szám\n"
end
beker.rb
#!/usr/bin/ruby
# encoding: utf-8
 
print 'Szám: ' 
nev = gets.chomp.to_i
 
if nev > 100
    print "Hu, ez nagy szám\n"
end
beker.rb
#!/usr/bin/ruby
# encoding: utf-8
 
print 'Név: ' 
nev = gets.chomp
 
if nev == "János"
    print 'Üdv újra János'
else 
    print 'Üdv! Ki vagy?'
end
szam.rb
#!/usr/bin/ruby
# encoding: utf-8
 
print 'Szám: ' 
nev = gets.chomp.to_i
 
if nev > 0
    print "Pozitív\n"
elsif nev < 0
    print "Negatív\n"
else
    print "Nulla\n"
end

Iteráció

ciklus.rb
#!/usr/bin/ruby
# encoding: utf-8
 
tomb = [1,2,3,4,5]
tomb.each do |i|
    puts i
end

while ciklus

ciklus.rb
#!/usr/bin/ruby
# encoding: utf-8
 
i = 5
while i < 10 do
    puts i
    i = i + 1
end

Tömb

tomb.rb
#!/usr/bin/ruby
# encoding: utf-8
 
szamok = Array.new(5) { |a| a = a * 2}
puts "#{szamok}"

A kimenet:

[0, 2, 4, 6, 8]
szamok = Array.[](1, 2, 3, 4,5)
puts "#{szamok}"
szamok = Array[1, 2, 3, 4, 5]
puts "#{szamok}"
#!/usr/bin/ruby
# encoding: utf-8
 
szamok = Array(5..10)
puts "#{szamok}"

Kollekció bejárása:

iter.rb
#!/usr/bin/ruby
# encoding: utf-8
 
tomb = [5, 6, 7, 8, 9, 10]
b = Array.new
b = tomb.collect{|a| a}
puts b
dupla.rb
#!/usr/bin/ruby
# encoding: utf-8
 
tomb = [5, 6, 7, 8, 9, 10]
b = Array.new
b = tomb.collect{|a| 2 * a}
puts b

Hash

ertekek = { "nev" => "János", "kor" => 35 }
puts ertekek["nev"]

Karaktersorozatok

Konkatenálás

konkat.rb
#!/usr/bin/ruby
 
szoveg = 'alma'
szoveg << 'körte'
 
puts szoveg
konkat.rb
#!/usr/bin/ruby
 
szoveg = 'alma'
szoveg += 'körte'
 
puts szoveg
konkat.rb
#!/usr/bin/ruby
 
szoveg = 'alma'
szoveg.concat('körte')
 
puts szoveg

Visszafele

"szilva".reverse
405.to_s.reverse

Méret

Karaktersorozatok mérete:

meret.rb
#!/usr/bin/ruby
 
szoveg = "alma"
meret = szoveg.size
puts meret
 
puts "körte".size

Nagybetű

Nagybetűs:

puts "körte".upcase

Szöveg cseréje

csere.rb
#!/usr/bin/ruby
szoveg = "körte"
puts szoveg.gsub("rte", "dös")

Fájlkezelés

Módok

Jel Jelentés
r Csak olvasható mód. A fájlmutató a fájl elején
r+ Olvasás-írás mód. A fájlmutató a fájl elején
w Csak írás mód. Felülírja a fájlt, ha létezik.
w+ Olvasás írás. Felülírja a létező fájlt.
a Csak írás mód. A fájlmutató a fáj végén.
Hozzáfűzés
a+ Olvasás-írás mód. A fájlmutató a fájl végén

Olvasás

Egész fájl beolvasása

file_content = File.open("adat.txt", "r:UTF-8", &:read)
puts file_content
open("adat.txt", "r:UTF-8") do |f|
    while line = f.gets
        puts line
    end
end
olvas.rb
File.open("adat.txt", "r:UTF-8") do |f|
    while line = f.gets
        puts line
    end
end

Írás

ir.rb
open("adat.txt", "w:UTF-8") do |f|
    f.write "1:Pelikán János:Orosháza:8700000"
end
ir.rb
File.open("adat.txt", "w:UTF-8") do |f|
    f.write "1:Pelikán János:Orosháza:8700000"
end