Burada, Ruby programlama dilini anlatmaya calışacağım ve eğer soru soran olursa cevap vermeye calışacağım şimdi, hafiften klişe bir şekilde başlayalım Ruby nedir? Ruby, 1990'ların ortalarında Japonya'da ortaya cıkmış, nesne yonelimli bir programlama dilidir.C++, Java gibi diğer bircok dilin aksine herşey, ama herşey birer nesnedir(int, float da dahil).Herşeyin nesne olması gibi bircok ozelliğini ilk dinamik nesne yonelimli programlama dili olan Smalltalk'tan almıştır(dinamiklik konusuna umarım daha sonra gelicez) ve perl'le de syntax acısından ceşitli benzerlikleri bulunmaktadır.Derlenen değil de, yorumlanan bir dil olduğu icin hız konusunda bi miktar yavaş kalır ama 1.9 surumunden itibaren gelen bytecode compiler ile bir miktar hızlanmıştır.Ayrıca rubyforge.org adresinde de bircok kutuphane bulunabilir Merhaba Dunya! **Bunu yazmadan gecmek mumkun değil** Perl'un "Bir işi yapmanın birden fazla yolu var" anlayışına (bir yere kadar) sahip olan ruby'de tabi ki ekrana "Merhaba Dunya!" yazdırmanın bircok yolu var. Kod:
print "Merhaba Dunya!"
Kod:
puts "Merhaba Dunya!"
Kod:
p "Merhaba Dunya!"
Kod:
$stdout 8
bu satırda da aslında 3 nesnesine "+" mesajını 5 argumanıyla yolluyoruz ve 8 sonucunu alıyoruz.Yani operatorler de aslında mesaj gonderiyor Bir başka ornek; Kod:
a = [1,3,true,["asd",3.5]].size => 4 # Bu "#" işareti ruby'de yorum karakteridir ve o satırın sonuna kadar gecerlidir. #Ayrıca => işareti ile belirttiğim şey yukarıdaki işlemin sonucudur.
Ruby'de dynamic typing sayesinde değişken tanımlamaya gerek yoktur.Direkt olarak bir değişkene atama yaparsanız o değişken tanımlanmış olur.Ayrıca yine bu nedenle listelerde veya fonksiyon argumanlarında sınıf kısıtlaması yoktur. Bir ornek daha; Kod:
3.times
Bu kod, ekrana 3 kez "asd" yazdırır.Burada 3'e times mesajını bir blokla yolluyoruz.Bir blok, bir ruby kodu parcasıdır ve kume parantezleri yada do...end anahtar sozcukleriyle sınırlandırılır.Bloklar, guvenin bana, gercekten cok yararlıdırlar. Kontrol Yapıları ruby'de de if ler diğer bir cok dildeki gibidir orneğin; Kod:
if 3 + 5 == 8 puts "heyoo!!" end
ekrana tahmin edebileceğiniz gibi "heyoo!!'" yazdırır.C syntaxlı dillerden farklı olarak if teki ifadenin etrafına parantez koymak gereksizdir(ki dongu vs. lerde de gerek yoktur).Diğer bir cok kod bloğu gibi if ler de "end" ile bitirilir. ayrıca, "unless" keywordu de "if not" anlamına gelir ve eğer verilen ifade yanlışsa o bloktaki kodu calıştırır if vs. icin bir diğer kullanım şekli de; "ifade if koşul" bicimindedir.Orneğin; Kod:
puts "heyoo!! if 3 + 5 == 8
bir ustteki if ile aynı sonucu verecektir.Bu yontem unless, while gibi şeyler icin de kullanılabilir Donguler Ruby'de de while dongusu bulunur ve diğer dillerdeki while lara benzer.Sadece bir ornekle geciştireceğim bunu; Kod:
a = 1 b = 5 c = 3 while a < b c += 1 a += 1 end c => 7
burada pek gorulecek birşey yok ruby'de for dongusu de bulunur ancak aslında bu donguye hic ihtiyac yoktur.Cunku for dongusunun 2 temel kullanım amacını karşılayan farklı yontemler vardır.bir şeyi belli bir kez yapmak icin int'lerin "times" metodu kullanılır ki yukarıda bahsedip ornek gostermiştim.Ama hadi yeni bir ozellik gostererek bir ornek daha veriyorum; Kod:
sonuc = 0 5.times do |i| sonuc += i end sonuc => 10
burada, bu blokta "|" karakterleri arasında verdiğimiz i, bu bloğun argumanıdır ve "times" metodu her donuşunde 0'dan başlayarak bir sayı dondurur bu argumana ancak bu argumanın oraya konulması zorunlu değildir. for dongusunun 2. kullanım amacı olan array'lerin her elemanıyla birşeyler yapma ise, Array vb. sınıflarda bulunan "each" metoduyla halledilir.Orneğin; Kod:
arr = [ 1,2,3,4,5,6,7 ] arr.each do |a| p a**2 end
bu kod, arr arrayinin tum elemanlarının karesini ekrana yazdırır(** operatoru kuvvet alma işlemi icin kullanılır). each metodu bir blok alır ve arguman olarak o arrayin o sıradaki elemanını verir. Bu seferlik bu kadar yeter.Umarım yararlı olmuşumdur kestane kebap, acele cevap __________________
Ruby Dersleri
Programlama0 Mesaj
●36 Görüntüleme
- ReadBull.net
- Programlama ve Yazılım
- Programlama
- Ruby Dersleri