Ruby Programlama

Ruby Programlamaya Giriş

Giriş
Ruby, nesneye yönelik, dinamik, reflektif bir programlama dilidir. Ruby dili, Yukihiro Matsumoto tarafından Japonya'da tasarlanmaya ve geliştirilmeye başlanmıştır.
Özellikler
·        Nesne tabanlı programlama (kalıtsallık, mixin ve metaclass desteği)
·        4 farklı tipte değişken tanımlanabilir: Globalclassinstance ve local
·        Her şey bir ifade ve aynı zamanda obje
·        Hata ve istisna yönetimi
·        Garbage collection (tr. Çöp toplama)
·        Yüksek taşınabilirlik
·        Geniş standart kütüphane desteği (YAMLJSONXMLCGIOpenSSLHTTPFTPRSS)
·        Perl benzeri dil seviyesinde doğal düzenli ifade desteği
·        Rasyonel sayılar, çok büyük sayılar ile çalışabilme

Sözdizimi ve yapısı

Ruby söz dizimi yapısı çok basittir diğer programlama dillerine nazaran.Sanki bir insanla konuşuyormuşcasına esnek bir yapıya sahiptir.Diğer programlama dillerindeki gibi bazı katı diye Hitap ettiğimiz kuralları pek yoktur.Buda haliyle esnek olmasını sağlamaktadır.Ayrıca Ruby yorumlayıcısı birçok işletim sistemi için yazılmıştır. Hemen hemen tüm işletim sistemlerinde çalışabilir.

Kurulum


Windows kurulum için :
1    .    https://www.ruby-lang.org/tr/downloads/ buradaki linkten son sürümü veya kurmak istediğiniz sürümü indirin.
2    .    İndirdikten sonra Next Next diyerek ilerliyoruz.

3    .    Yukarıdaki tüm bileşenleri seçiyoruz.Sonra kurulumun tamamlanmasını bekliyoruz.
4    .     
Burada ise Ruby başarılı bir şekilde yüklenmişmi yüklenmemiş mi onu görüyoruz.
  Kurulum işlemi bu kadar.
Not : Bu işlemler konsoldan çalışacak arkadaşlar içindi.Kodunuzu yazıp ‘.rb’ uzantılı olacak şekilde kaydettikten sonra komut satırından bulunduğu dizine ulaşıp ruby ornek.rb demeniz yeterli çıktı alabilmeniz için.
Önerilen program :  https://www.jetbrains.com/idea/


Artık Programlama kısmına girebiliriz.
Değişken tanımlamada tür belirtmenize gerek yok ancak sadece birbiri türünden çevirmelerde belirli kodları yazmanız gerekiyor.

Sayi= 5 dersek eğer tam sayı türünde sayi değişkeni tanımlamış 5 değerini buna atamış oluruz.Kendi otomatik algılıyor yani.

Örnek :
s1 =5
s2 = 12

puts s1 + s2
Çıktı olarak : 17 sonucunu görürüz.

Yorum satırları :

# =begin =end yorum satiri başlangıc ve bitişini verir bize.
Örnek :
=begin
s1 =5
s2 = 12

puts s1 + s2
=end
Bu aradaki işlemleri yorum satırı olarak görür ve program buraları okumadan atlar.

Tür öğrenme :
Eğer tanımaladığınız değişkenin hangi türde olduğunu bulmak istiyorsanız şayet
  Değişken.class demeniz yeterli
Örnek :
puts "ebubekir".class

puts
1.234.class
String ,Float sonucu döner.
Kontrol Yapıları
if(yas >=4 ) && (yas <=6)

   puts
"You are in kindergarten"

elsif

 
puts "You're in Middle School"

 
put "Yeah"

else "Stay Home"

end
if yapısına bir örnektir buda şart sağlanırsa ilk blok şart sağlanmazsa elsif bloğu oda sağlanmazsa en son blok çalışır ve çıkar.
Başka bir kullanım

Note  :

  a<=> b

if a < b then return -1

if a = b then return  0

if a > b then return  1

if a and b are not comparable then return nil
Diğer bir kullanıma örnek :
x =12



puts (x <= 50 ? "Yasli" : "Genc")
Daha niceleri....
Mantıksal Operatörler
puts "true && false = " + (true && false).to_s

puts
"true || false = " + (true || false).to_s

puts
"!false = " + (!false).to_s
Örneğin burada .to_s çevirimi yapmamız gerekti yoksa çalışmazdı kodumuz.
Diğer kullanım yöntemi biraz farklı olsada mantık aynıdır.
print("1.sayiyi giriniz :")

s1= gets.to_i



print(
"2.sayiyi giriniz :")

s2= gets.to_i



begin

 
cevap = s1/s2

rescue

 
puts "0'a bölme hatasi"

 
exit

end

puts "#{s1} / #{s2} = #{cevap}"
rescue ingilizcedeki anlamında(kurtarma) olduğu gibi bizi programı sıkıntıya sokacak bir durumda yapmasını istediklerimizi bu bloğa yazarız.

Kullanıcıdan değer alma
print "Selam Yazısı giriniz"



selam = gets.chomp



case selam

  when "Fransizca" ,"fransizca"

    puts "Bonjour"

  when "Ispanyolca" ,"ispanyolca"

    puts "Hola"

    exit

  else

    put "Hello"

end
Bu örneğimizde ise kullanıcıdan aldığımız hangi dilde selam yazısını istiyorsa basit bir mantıkla , aldığımız selam değişkenizdeki değeri hangi dili girdiyse kullanıcı onun karşılığını bizim tanımladığımız çerçevedeki dillerdeki karşılıklarını yazdırıyoruz.


Döngüler
1 ) Loop Do
x=1

loop do

 
x +=1

  
next unless (x%2) ==0

     
puts x

  
break if x >=10



end
loop do döngüsü ile 2 – 4 -  6 -8 -10 sayılarını yani mod olarak 2 ‘ye bölümünden kalanı sıfır olan sayıları alır.
While
while şart [do]
   kod
end
Örnek :
x=0

while x<5 do

 
x=x+1

 
puts "#{x}"

end
Çıktı :
1
2
3
4
5
Şeklinde çıktı verir
Diğer kullanımı
begin 
  kod
end while şart
begin

 
x=x+1

 
puts "#{x}"

end while x<5

Çıktı :
1
2
3
4
5
Şeklinde çıktısını verir.Yukarıdaki ile aynı işi yapar.

Until

until şart [do]
   kod
end

Örnek
x =0



until 5 < do

 
puts("#{x}" )

 
x +=1;

end

Çıktı :
1
2
3
4
5
For Döngüsü
for değişken in ifade[ do]
   kod
end
Örnek :
for i in 0..5

 
puts "Değer  = #{i}"

end
Burada puts’un içine sayı i değişkeninin yazılmasını istiyorsak eğer #{değişken} şeklinde tanımlarız.
Başka bir kullanımı ise
(0..5).each do |i|

 
puts "Değer  = #{i}"
end

Buda aynı sonucu verir.
Break ifadesi :
 for i in 0..10
   if i > 2 then
      break
   end
   puts "Değerler #{i}"
end

 

Buradaki işlem ise 0’dan 10 a kadar dönecek olan bir döngü tanımladık ancak bu döngümüz i değeri 2 den küçük olduğu sürece dönecektir.Yani şu durumda 0,1,2 olur.
Next ifadesi :
for i in 0..10
   if i < 2 then
      next
   end
   puts "Değerler #{i}"
end
Buradada 2 den büyük olduğun sürece işlemleri yürüt.2den küçük değerler için çalışma demiş olduk bir neticede.

Diziler
Dizi oluşturmanın diğer dillerde olduğu gibi Ruby’dede birden fazla yolu var.
1.    Dizi = Array.new(20)                <- 20 boyutlu dizi oluşturur.
2.    Sayilar = Array[1,2,3,4,5]
3.    Rakamlar = Array(0..9)
Örnek :
sayilar = [1,2,3,4,5]



toplam = 0

sayilar.each {|a| toplam+=a }
Örnek :
meyveler = ["elma","armut","şeftali"]

puts meyveler
Çıktı :
elma
armut
şeftali


Fonksiyonlar

Programlama parçacıklarının ve ifadelerin bir araya toplandığı şeydir method.Yani sadece bir sonuc dönderen ve aldığı parametreler üzerinde işlem yaparak , kullanıcının bunu ileride defalarca kullanabilmesini sağlayarak kod kalabalıklığını ve programın okunurluğunu artıran yapılardır düz mantık olarak fonksiyonlar.Örnek vermek gerekirse ;
Herhangi bir çalışan günde binlerce imza atması gerekiyor diyelim kağıda devlet idaresinde , bu kullanıcı ne yapıyor her seferinde uzun uzun kalemle kağıda imza atmaktansa ne yapıyor gidip kaşe alıyor imzasının aynısını oraya yaptırıyor ,bu sayede de uzun uzun imza atmaktan kurtuluyor.Tek dokunuş ile o kişiyi o imza atma zahmetinden kurtarıyor işte buda tam olarak bu işi yapıyor.

def sayi_ekle(s1,s2)

 
s1+s2

end



puts sayi_ekle(3,4)



Yorumlar

Bu blogdaki popüler yayınlar

Data Annotation Nedir?

2 bitlik 2 sayıyı çarpma

Asp.Net Mvc 5 Çoklu Dil Desteği