Ruby Kod Parçacıkları - 1

Merhaba Arkadaşlar,

Bir programlama dilini öğrenmenin en iyi yolu elbetteki bol bol kod yazmaktan geçer. En azından belirli bir seviyeye gelene kadar basit IDE' ler ile mümkünse Console ekranları üzerinden çalışarak ilerlemekte yarar vardır. Hazır bu aralar Ruby ile haşır neşir iken hem basit kod parçaları paylaşayım hem de bu eğlenceli dili birlikte öğrenelim istedim. İşte ilk kod parçacığımız. Konumuz, diziler(Arrays).

Bu kod parçasını rb uzantılı bir dosya olarak kaydettikten sonra(Örneğin Arrays.rb gibi) komut satırından Ruby aracı ile doğrudan çalıştırabiliriz. Sisteminizde Ruby yüklüdür değil mi? :)
#Temel dizi işlemlerinden bazıları

if __FILE__ == $0
	#baziNesneler isimli bir dizi oluşturarak işe başlayalım
	baziNesneler=[1,1.3,"Burk",true,nil,-88]
	puts baziNesneler.inspect

	# << ile eleman eklemek
	baziNesneler<<"Sepet"
	puts baziNesneler.inspect

	#En sağdan herhangi bir sıradaki elemanı çekmek
	puts "Sondan 3ncu eleman "+baziNesneler[-4].to_s

	#ilk veya son elemanlara gitmek
	first=baziNesneler.first
	last=baziNesneler.last
	puts "ilk elaman #{first}\nson Eleman #{last}"

	#Kesişim kümesini bulmak
	dizi1=[1,3,5,7]
	dizi2=[3,7,11,13,15]
	dizi3=dizi1 & dizi2
	puts dizi3.inspect

	#Dizileri birleştirmek
	dizi4=dizi1+dizi2+dizi3
	puts dizi4.inspect

	#Diziden birden fazla eleman çıkartmak
	dizi5=dizi4-[3,5,7]
	puts dizi5.inspect

	#Başka işlemler için başka bir dizi tanımı
	nesneler=["kitap",1,true,nil,"parfum",Math::PI]

	#Dizinin ilk hali
	puts nesneler.inspect

	#pop ile son eleman diziden çıkartarak elde etmek
	puts nesneler.pop
	puts nesneler.inspect

	#push ile dizinin sonuna eleman/elamanla eklemek
	nesneler.push("Corap",1976,false)
	nesneler.inspect

	#shift ile ilk elemanı diziden çıkartarak almak
	puts nesneler.shift
	puts nesneler.inspect

	#unshift ile dizinin başına eleman/elemanlar eklemek
	nesneler.unshift("o zaman dans","renk")
	puts nesneler.inspect

end

ve çalışma zamanı çıktısı


Şimdi kod içerisinde neler olup bittiğine bir bakalım. 

  • İlk olarak __File__ değişkeninin o anki dosyanın adını işaret ettiğini belirtebiliriz. $0 ise programı başlatmak için kullanılan dosyanın adıdır. Bir nevi Main metodu yazdığımızı ve script' in Programın kendisi olduğunu düşünebiliriz.(Console Application misali)
  • Bir diziyi oluşturmak son derece kolaydır. Hatta görüldüğü üzere diziler herhangi bir türden eleman barındırabilir. Pek tabi tek bir tipte(örneğin Fixnum gibi) elemanlar da içerebilirler.
  • Bir diziye eleman eklemek için en basit haliyle << operatörü kullanılabilir.
  • Dizinin sağından itibaren geriye doğru herhangi bir elemanını almak da kolaydır. Bunun için negatif indis değeri kullanmak yeterlidir. Akıllıca değil mi? :)
  • Dizi elemanlarını ekrana yan yana gelecek şekilde kolayca yazdırmak için inspect metodundan yararlanılır. Aslında inspect metodu bir nesnenin sınıf adı ve nesne değişken değerlerini insan gözüyle kolayca okunabilecek şekilde String tipte döndürmek üzere tasarlanmıştır. Kullanıcı tanımlı sınıflarda bu metod ezilebilir(Override). (Bu durum .Net tarafındaki ToString metodunun ezilmesi gibi düşünülebilir)
  • to_s ile nesne değerinin String' e dönüştürülmesi sağlanır.
  • Dizilerin kesişim kümelerini bulmak için $ operatörü, n sayıda diziyi birleştirmek için + operatörü, bir veya daha çok eleman çıkartmak içinse - operatörü kullanılabilir.
  • pop metodu ile bir dizinin son elemanı elde edilir. Ancak aynı zamanda bu eleman diziden çıkartılır.
  • push metodu ile dizinin sonuna eleman/elemanlar eklenebilir.
  • shift metodu ile dizinin ilk elemanı alınabilir. Ancak aynı zamanda bu eleman diziden çıkartılır.
  • unshift metodu ile dizinin başına eleman/elemanlar eklenebilir.
  • Yorum satırlarının # ile başladığına dikkat edelim. Farklı yorum satırları da var. Özellikle yardım dokümanlarını otomatik hazırlayan araçlar için. Buna da yakın zamanda değineceğiz.
  • Math::PI deki PI nin Math sınıfı içinde tanımlı bir Constant olduğunu da son olarak belirtelim.

 

Görüldüğü gibi dizilerle çalışmak son derece kolay. Tişikkirler Matz :)
 
Bir başka Ruby Kod Parçacığında görüşmek üzere hepinize mutlu günler dilerim. 

Yorumlar (2) -

  • "Dizilerin kesişim kümelerini bulmak için $ operatörü, n sayıda diziyi birleştirmek için + operatörü, bir veya daha çok eleman çıkartmak içinse - operatörü kullanılabilir."
    maddesinde $ değil de & olacak sanırım, örnek kodda görünen şekilde.
    Çalışmalarınız için teşekkürler.
  • Çok güzel tespit etmişsiniz Serkan Bey. Geri dönüşünüz ve desteğiniz için teşekkürler Smile

Yorum ekle

Loading