oktatas:programozas:ruby:a_ruby_nyelv
Tartalomjegyzék
A Ruby nyelv
- Szerző: Sallai András
- Copyright © Sallai András, 2015, 2020
- Licenc: GNU Free Documentation License 1.3
- Web: http://szit.hu
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
- globális - A globális változókat „$” karakterrel kezdjük.
- helyi
- példányváltozó
- osztályváltozó
- álváltozók
- á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
- to_s konvertálás karaktersorozattá
- to_i konvertálás egész számmá
- to_a konvertálás tömbbé
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
oktatas/programozas/ruby/a_ruby_nyelv.txt · Utolsó módosítás: 2020/06/08 23:09 szerkesztette: admin