Header Ads

Ruby Diziler (Arrays) 1. Kısım


 
Ruby de diziler; herhangi bir nesnenin, tamsayı indisli koleksiyonlarıdır.  Dizilerde indisler, C ve JAVA dillerinde olduğu gibi 0 ‘dan başlar. Ayrıca negatif tamsayılar da indis olarak kullanılabilir. Örnek vermek gerekirse bir dizinin -1 nolu indisi o dizinin son elemanını verecektir. Bu ifadeden de anlaşılacağı üzere, Ruby ‘de dizilerin negatif indisleri elemanları sondan başa doğru ters bir sıra ile belirtecektir.
Ayrıca Ruby dilinin en güzel yönlerinden birisi de dizilerde farklı türdeki elemanları tutabilirsiniz.

DİZİ OLUŞTURMA
Ruby ‘de dizi oluşturmanın birçok yolu vardır. Boş bir dizi oluşturabilirsiniz  veya atama operatörü ile dizinize bir takım elemanlar da ekleyebilirsiniz. Şimdi birlikte nasıl dizi oluşturulur onlara bir göz atalım:
Boş Dizi


#Bu şekilde boş bir dizi oluşturulabilir.

#Ve ya bu şekilde de boş bir dizi oluşturulabilir.

Elemanlı Dizi

# bu şekilde farklı türlerde elemanlara sahip dizi oluşturulabilir.


# Veya bu şekilde 3 elemanlı, elemanları nil olan bir dizi de oluşturulabilir.

Metin Dizisi;

# dizi = ["ali","veli","mehmet","erdem"]
Bu şekilde de elemanlarının hepsi metin(string) olan bir dizi oluşturabilirsiniz.

Sembol Dizisi;

#dizi = [:ali,:veli,:mehmet]
Bu şekilde de elemanlarının hepsi sembol(symbol) olan bir dizi oluşturabilirsiniz.

ELEMANLARA ERİŞME
Dizilerin tuttuğu elemanlara erişebilmek için de birçok yol vardır. İlk akla gelen ve en çok kullanılan yol tabi ki köşeli parantez içine erişilmek istenilen indisin yazılması şeklinde kullanılan yoldur. Ancak bahsettiğimiz gibi birçok farklı yöntem vardır. Diğer farklı durumlara da göz atalım:


  #dizimiz bu şekilde tanımlanmış olsun.


Köşeli parantez kullanılarak yukarıda görülen şekillerde elemanlara erişim sağlanılabilir.  Şimdi de aynı dizi üzerinden köşeli parantez ve ya indis kullanmadan yapılan erişimlere göz atalım:
at() metodu


fetch() metodu




first ve last metodları
# first ile ilk indisteki ve last ile son indisteki elemana erişebiliriz.



take() metodu;         
# take(n) ile dizinin n sayıdakı elemanına erişim sağlayabiliriz.



drop() metodu;
# take metodunun zit mantığı ile çalışır.

DİZİ HAKKINDA BİLGİ ALMA
      Diziler hakkında bazen bilgi almamız gerekebilir. Mesela dizinin boyutu kaç?  Dizi boş mu? veya istenilen elemanı içeriyor mu? Bu bilgilere erişebilmek için de belirli metodları  kullanacağız

Dizinin Boyutu;



 Dizi Boş Mu?


 Dizi Bu Elemanı İçeriyor Mu?


DİZİLERE ELEMAN EKLEME- ÇIKARMA
      Dizilere eleman eklerken ve ya dizilerden eleman çıkarırken de birçok farklı yol kullanabiliriz.
dizi = [2,3,5,7]
Örneklerimizde yukarıdaki diziyi ele alalım.    
Eleman Ekleme;
push() metodu ve ya << operatörü ile dizimize sondan eleman eklemiş oluruz.



unshift() metodu ile dizimize baştan eleman eklemiş oluruz.


insert() metodu ile dizimize istediğimiz bir indise eleman eklemiş oluruz. İstenilen indisteki mevcut eleman bir indis ileri kayacaktır. Ayrıca insert() metodu ile çoklu eleman ekleme de yapabiliriz.
dizi.insert(4, "elma")    #=> [1,2,3,5,"elma",7,11,13]
dizi.insert(2, "muz","nar","dut")   #=> [1,2,"muz","nar","dut",3,5,"elma",7,11,13]

Eleman Çıkarma;
pop metodu, diziden sondaki elemanı çıkartır ve onu geri döner.



shift metodu, diziden baştaki elemanı çıkartır ve onu geri döner.



delete_at() metodu, diziden istediğimiz indisteki elemanı siler ve geri döner.


delete() metodu, diziden istedigimiz elemanı siler ve geri döner.


compact ile dizideki tüm nil değerleri silebiliriz ancak değişiklik kalıcı olsun istiyorsak compact! şeklinde kullanmamız gerekir.



Yukarıdaki diziye compact ve compact! metodlarını uygularsak


olduğunu görebiliriz.

uniq metodu ise bir diğer faydalı metottur. Bu metot ile diziden tekrar eden elemanları çıkartabiliriz.


çıktımız yukarıdaki şekilde hiç bir elemanının tekrar etmediği şekilde olacaktır. 



_________________________________________________________________________
Emre İNAÇ
  Ondokuz Mayıs Üniversitesi
       Yıldız Teknik Üniversitesi 

  Samsun
 


Hiç yorum yok

Blogger tarafından desteklenmektedir.