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.
Készítsük el a következő állományt:
#!/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
# egysoros megjegyzés print "egy"
=begin
Ez egy több soros
megjegyzés.
=end
#!/usr/bin/ruby print 40
puts 'Helló'
Kifejezések kiértékelése:
print (3 * 4).to_s + "\n" puts 3 * 4
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 |
szam = 30
#!/usr/bin/ruby szam = 30 eredmeny = szam * 2 puts eredmeny
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
#!/usr/bin/ruby szam = 5 puts "Szám: %d" % szam
#!/usr/bin/ruby szam = 54.12345 formatum = "Szám: %010.2f" % szam puts formatum
#!/usr/bin/ruby szam = 5 printf "Szám: %d\n", szam
#!/usr/bin/ruby szam = 54.12345 printf "Szám: %010.2f\n", szam
#!/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:
#!/usr/bin/ruby # encoding: utf-8 print 'Név: ' nev = gets.chomp
szamStr = "25" szam = szamStr.to_i
szam = 35 szamStr = szam.to_s
#!/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
#!/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
#!/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
#!/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
#!/usr/bin/ruby # encoding: utf-8 tomb = [1,2,3,4,5] tomb.each do |i| puts i end
#!/usr/bin/ruby # encoding: utf-8 i = 5 while i < 10 do puts i i = i + 1 end
#!/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:
#!/usr/bin/ruby # encoding: utf-8 tomb = [5, 6, 7, 8, 9, 10] b = Array.new b = tomb.collect{|a| a} puts b
#!/usr/bin/ruby # encoding: utf-8 tomb = [5, 6, 7, 8, 9, 10] b = Array.new b = tomb.collect{|a| 2 * a} puts b
ertekek = { "nev" => "János", "kor" => 35 } puts ertekek["nev"]
#!/usr/bin/ruby szoveg = 'alma' szoveg << 'körte' puts szoveg
#!/usr/bin/ruby szoveg = 'alma' szoveg += 'körte' puts szoveg
#!/usr/bin/ruby szoveg = 'alma' szoveg.concat('körte') puts szoveg
"szilva".reverse
405.to_s.reverse
Karaktersorozatok mérete:
#!/usr/bin/ruby szoveg = "alma" meret = szoveg.size puts meret puts "körte".size
Nagybetűs:
puts "körte".upcase
#!/usr/bin/ruby szoveg = "körte" puts szoveg.gsub("rte", "dös")
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 |
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
File.open("adat.txt", "r:UTF-8") do |f| while line = f.gets puts line end end