Ruby Günlüğü – Gün 9

Diziler

Basit bir dizi;

Dizinin elemanlarını, dizide ki yerine göre ekrana yazdırırız ;

Sonuç 4 olacaktır. Çünkü bir çok programlama dilinde karşılaşmış olacağınız üzere, programlama dillerinde sayım işlemine 0’dan başlanır.

Dizi elemanları için atama ve elemanı değiştirme işlemi aynı yöntemle yapılır, assignment ifadesi ile bunları yaparız.

dizi[5] =12

6 olan değer, artık 12 oldu.

Boş bir dizi ;

Bu boş dizinin sonuna elemanlar eklemek için “<<” ifadesini kullanabiliriz;

Denemekten korkmayın. Örneğin ben python’da dizinin son elemanının n[-1] ile temsil edildiğini biliyorum ve bunu Ruby’de denedim, çalıştı.

Son ve ilk eleman için bir metodta bulunmakta.

dizi.first => İlk elemanı verir. dizi[0] ile eşdeğerdir.

dizi.last => Son elemanı verir. dizi[-1] ile eşdeğerdir.

Peki ya ilk 3 elemanı yazdırmak istersek? Veya son üç?

Alternatif olarak “push” metodu da kullanılabilir, ben bu tarz karakterleri aklımda pek iyi tutamadığım için methodları tercih ediyorum.

Popping, python çalışmış olanların aşina olduğu bir durum olmalı, dizinin son elemanını diziden atılmasıdır.

“pop” isimli metod bu işi yapar;

Son elemanın atılmış olduğunu görebilirsiniz.

Stringler’de görmüş olduğunu lenght metodu, diziler içinde geçerli, dizinin uzunluğunu bize bildirir.

Python’dan anımsanabilecek bir metod daha var, “join”.

Join tek başına kullanılabildiği gibi, yanına bir parametre alarakta kullanılabiliyor.

Parametresiz ;

Parametreyle ;

Stringleri Dizi Elemanı Olarak Bölme

Stringin tüm elemanlarını parçalayarak diziye ekleyelim;

Daha büyük parçalar halinde, bu stringi kelimelere ayırmak için ;

Burada önemli bir nokta, split’in içerisinde ki ” ” (boşluk) karakteri.

Bunun vereceği sonuç ; “Mustafa”, “Serhat”, “Dundar” olacaktır.

Biz düzenli ifade olarak boşluk karakteri girdiğimiz için, stringi boşluk karakterlerinden bölecek.

“a” harflerinden bölmesi için ;

Hiç ifade kullanmasak?

* Burada inspect kullanmasaydık, dizi elemanı olarak işlem görmez, yalnızca string olarak işlem görürdü ifademiz.

Boşluk karakterini parametre olarak kullandığımız örneğin, düzenli ifadeler ile yazımı şu şekilde olacaktı ;

“inspect” metodu yerine, string ifademizi “p” karakteri ile çevreleyip aynı işlemi yaptırabiliriz. Tabi ki bu sadece irb’de hızlıca test işlemi gerçekleştirmek için kullanışlı bir yöntem, ciddi anlamda uygulama yazarken klasik metodlardan uzaklaşmayacağız.

Array Iteration

Dizilerde iterasyon yapmak, stringlerde yaptığımız iterasyon ile oldukça benzer.

Integer elemanlardan oluşan bir dizimiz var diyelim ki, dizinin her bir elemanını 3 ile çarpmak istiyoruz?

2,4,6,8 sonucunu alacağız.

* Map metodu ile collect metodu aynı işi yapar.

Birebir aynı sonucu verir.

Diğer Dizi Metodları

Ekleme ve Bağlama

Dizileri, aynı stringlerde olduğu gibi “+” metodu ile birbirine ekleyebiliriz.

Burada “p” ifadesi ile “puts z.inspect” ifadesini kısaltmış olduk.

Çıkarma ve Fark

Tahmin edeceğiniz üzere “-” metodu bu işi yapar.

Dizinin Boş Olup Olmamasının Kontrolü

“empty?” metodu ile dizinin boş olup olmadığını kontrol edebiliriz.

Dizide ki Bir Elemanın Varlığının Kontrolü

“include?” metodu bu işi yapmamızı sağlar.

Stringlerde kullandığımız “reverse” metodunu diziler içinde kullanabiliriz.

“dizi.reverse” diziyi ters çevirecektir.

Metodlar multiple kullanabiliyorduk ;

2 kez tersine çevirmek, diziyi ilk haline çevirecektir.

2 thoughts on “Ruby Günlüğü – Gün 9”

Leave a Reply