Merhabalar,
Bu konuda Ruby 'nin dizi (Array) tipinin metodlarını göreceğiz. Başlayalım. İndis 0 dan başlar. İndis dediğim elemanın eşleşme numarasıdır.
Eleman Sayısını Öğrenme
Bir dizi tanımladık "dizi" isminde.
.length metodu ile uzunluğunu öğrendik. 10 elemanı var. "puts" ile de ekrana bastık.
Dizinin İlk Elemanını Alma
.first isimli metodu kullanıyoruz. İndis'i sıfır olan elemanı bize veriyor. Az önceki listeyi yazı olarak yazarak görmeyi sağladım.
Dizinin Son Elemanını Alma
.last metodu ile dizinin son elemanını alıyoruz. Sonuç tabii ki bildiğiniz gibi.
Dizinin n'e Kadar Elemanını Alma
.take verilen sayıya kadar olan verileri almaya yarıyor. puts ile bastık sonra. Anlamak için tekrar görelim. "n" dediğim verdiğimiz parametre / sayı.
Dizinin n'den Geri Kalan Elemanlarını Alma
Az öncekine ters çalışıyor bu metod. Kendi olduğu indis dahil değildir. 6 verirsek 7 dahil ve sonrasını alır.
Diziden İstediğimiz Elemanı Alma
[] köşeli parantez içine indis numarasını veriyoruz. Basit...
Dizinin Son Elemanını Silme
.pop ile dizinin son elemanını siliyoruz.
Dizinin İlk Elemanını Silme
.shift ile dizinin son elemanını siliyoruz.
Dizinin Sonuna Eleman Ekleme
Diziye .push ile eleman ekleyebiliriz.
Dizinin Başına Eleman Ekleme
.unshift metodunu kullanıyoruz bunun için.
Diziden İstediğimiz Elemanı Silme
Bu işlem için .delete kullandık. Silmek istediğimiz elemanı veriyoruz direkt.
Diziden İndis'e Göre Eleman Kaldırma
.delete_at metoduna bir parametre veriyoruz. Sileceğimiz elemanın indisi. Ve kaldırıyor. .delete de elemanın kendisini veriyorduk. Karışmasın.
Bir Dizi Terse Çevirmek
.reverse adlı metodu kullanıyoruz. İndisleri tersine çevirir. Örneğin, dizimizde 3 eleman olsun. 0,1 ve 2 olmak üzere üç indisi olur. .reverse 2,1 ve 0 şeklinde tersine çevirir.
Bir Diziyi Özelleştirme
.select aslında bir iterasyon örneğidir. Listemiz içindeki tüm elemanları teker teker aldı ve 7 ye eşit veya 7 den büyük mü diye kontrol etti. true, false tipinden çıktı verdi.
Dizi İçinde Eleman Var Mı Yok Mu Kontrol Etme
.include? ile kontrol edebiliriz. true veya false döner.
Dizi İçindeki Dizilerin Elemanlarını O Diziye Eleman Olarak Verip Diziyi Ortadan Kaldırma
Biliyorum, başlık fazla karışık.
Şimdi bu resimdeki "dizi" isimli dizi tipindeki değişkeni görüyoruz. Bu değişken içindeki elemanlardan biri dizi ve o dizinin içinde bir dizi daha var. .flatten burada devreye giriyor. 3 dizinin içindeki tüm elemanları tek bir dizi haline çeviriyor. Gayet iş yapar.
Dizi de "For" Döngüsü
Ön bilgi: for döngüsü dizinin elemanlarını teker teker alıp üzerinde işlem yapmamıza yarar. Siz işlemi belirlersiniz sonra sırayla teker teker tüm elemanlara o işlemi yapar. Görelim.
Kullanım olarak:
Tek Satırda For Döngüsü
Kullanım olarak:
Aynı Elemanları Diziden Kaldırma
.uniq metodu ile bir dizi de bulunan aynı elemanları ortadan kaldırabiliyoruz. Tıpkı küme gibi. Bir küme de aynı elemandan 2 tane olamaz.
Bir Diziye Diğer Dizinin Elemanlarını ekleme
.concat ile verdiğimiz dizinin elemanlarını orijinal diziye ekleyebiliyoruz. Dizi vermek gerekiyor. Birden fazla dizi de verilebilir.
Veya dan önceki kodda sonraki kodda bu çıktıyı verir. İki kodun aynı anda çıktısı bu değildir.
Dizinin İstediğimiz Yere istediğimiz Elemanı Ekleme
.insert metodu ilk parametre olarak elemanı ekleyeceğimiz yerin indisini alır. Sonra da ne ekleneceğini. Görelim.
Ya da birden fazla verebiliriz.
Boş Elemanları Diziden Silme
.compact isimli metodu kullanıyoruz. Boş değer sadece "nil" dir.
Bir İşlem Yaparak Yeni Dizi Oluşturma
.map ile bunu yapabiliyoruz. Bu da for döngüsü gibi aslında.
Bir Diziyi Ters Özelleştirme
.select i görmüştük. Altına yapmadım ama onun ters halini de göstereyim.
Şimdi eğer .select kullansaydık işleme göre 6 ve gerisini alacaktı. (6,5,4,3,2,1,0). .reject ise .select in tam tersini alıyor.
-sa / -se Diziden Sil
.delete_if yazdığım gibi -sa / -se sil anlamına geliyor. Kod parçasında a değeri 4'ten küçükse sil diyoruz. Küçükler gitti.
Dizideki Elemanların Toplamı
.sum ile tüm elemanların toplamını alabiliriz.
Peki ya Karakter Dizisiyse.
Şimdi burada parametre vermek gerekiyor. Direkt .sum çalışmıyor hata dönüyor. Ben boş parametre verdim ve sonucu gördük. Dolu parametre verelim.
Çıktısı bu.
Bir Dizi Alfabe Sırasına veya Rakam Sırasına Göre Sıralama
.sort metodu burada bizim işimizi görüyor.
Burada en çok kullanılanlar ve işinize yarayacağını düşündüklerim var. Okuduğunuz için teşekkürler.
Bu konuda Ruby 'nin dizi (Array) tipinin metodlarını göreceğiz. Başlayalım. İndis 0 dan başlar. İndis dediğim elemanın eşleşme numarasıdır.
Atmaca (0), Kuş (1), Kartal (2), Yılan (3)
Eleman Sayısını Öğrenme
Bir dizi tanımladık "dizi" isminde.
.length metodu ile uzunluğunu öğrendik. 10 elemanı var. "puts" ile de ekrana bastık.
Kod:
[COLOR="Lime"]>>> [/COLOR]10
Dizinin İlk Elemanını Alma
.first isimli metodu kullanıyoruz. İndis'i sıfır olan elemanı bize veriyor. Az önceki listeyi yazı olarak yazarak görmeyi sağladım.
Kod:
[COLOR="Lime"]>>> [/COLOR]sıfır
Dizinin Son Elemanını Alma
.last metodu ile dizinin son elemanını alıyoruz. Sonuç tabii ki bildiğiniz gibi.
Kod:
[COLOR="Lime"]>>> [/COLOR]dokuz
Dizinin n'e Kadar Elemanını Alma
.take verilen sayıya kadar olan verileri almaya yarıyor. puts ile bastık sonra. Anlamak için tekrar görelim. "n" dediğim verdiğimiz parametre / sayı.
Kod:
[COLOR="Lime"]>>> [/COLOR]sıfır
bir
iki
üç
Kod:
[COLOR="Lime"]>>> [/COLOR]sıfır
bir
iki
üç
dört
beş
altı
Dizinin n'den Geri Kalan Elemanlarını Alma
Az öncekine ters çalışıyor bu metod. Kendi olduğu indis dahil değildir. 6 verirsek 7 dahil ve sonrasını alır.
Kod:
[COLOR="Lime"]>>> [/COLOR]altı
yedi
sekiz
dokuz
Kod:
[COLOR="Lime"]>>> [/COLOR]iki
üç
dört
beş
altı
yedi
sekiz
dokuz
Diziden İstediğimiz Elemanı Alma
[] köşeli parantez içine indis numarasını veriyoruz. Basit...
Kod:
[COLOR="Lime"]>>> [/COLOR]yedi
Dizinin Son Elemanını Silme
.pop ile dizinin son elemanını siliyoruz.
Kod:
[COLOR="Lime"]>>> [/COLOR]sıfır
bir
iki
üç
dört
beş
altı
yedi
sekiz
Dizinin İlk Elemanını Silme
.shift ile dizinin son elemanını siliyoruz.
Kod:
[COLOR="Lime"]>>> [/COLOR]bir
iki
üç
dört
beş
altı
yedi
sekiz
dokuz
Dizinin Sonuna Eleman Ekleme
Diziye .push ile eleman ekleyebiliriz.
Kod:
[COLOR="Lime"]>>> [/COLOR]sıfır
bir
iki
üç
dört
beş
altı
yedi
sekiz
dokuz
on
Dizinin Başına Eleman Ekleme
.unshift metodunu kullanıyoruz bunun için.
Kod:
[COLOR="Lime"]>>> [/COLOR]-bir
sıfır
bir
iki
üç
dört
beş
altı
yedi
sekiz
dokuz
Diziden İstediğimiz Elemanı Silme
Bu işlem için .delete kullandık. Silmek istediğimiz elemanı veriyoruz direkt.
Kod:
[COLOR="Lime"]>>> [/COLOR]sıfır
bir
iki
dört
beş
altı
yedi
sekiz
dokuz
Diziden İndis'e Göre Eleman Kaldırma
.delete_at metoduna bir parametre veriyoruz. Sileceğimiz elemanın indisi. Ve kaldırıyor. .delete de elemanın kendisini veriyorduk. Karışmasın.
Kod:
[COLOR="Lime"]>>> [/COLOR]bir
iki
üç
dört
beş
altı
yedi
sekiz
dokuz
Bir Dizi Terse Çevirmek
.reverse adlı metodu kullanıyoruz. İndisleri tersine çevirir. Örneğin, dizimizde 3 eleman olsun. 0,1 ve 2 olmak üzere üç indisi olur. .reverse 2,1 ve 0 şeklinde tersine çevirir.
Kod:
[COLOR="Lime"]>>> [/COLOR]dokuz
sekiz
yedi
altı
beş
dört
üç
iki
bir
Bir Diziyi Özelleştirme
.select aslında bir iterasyon örneğidir. Listemiz içindeki tüm elemanları teker teker aldı ve 7 ye eşit veya 7 den büyük mü diye kontrol etti. true, false tipinden çıktı verdi.
Kod:
[COLOR="Lime"]>>> [/COLOR]false
false
false
false
false
false
false
true
true
true
Dizi İçinde Eleman Var Mı Yok Mu Kontrol Etme
.include? ile kontrol edebiliriz. true veya false döner.
Kod:
[COLOR="Lime"]>>> [/COLOR]true
Kod:
[COLOR="Lime"]>>> [/COLOR]false
Dizi İçindeki Dizilerin Elemanlarını O Diziye Eleman Olarak Verip Diziyi Ortadan Kaldırma
Biliyorum, başlık fazla karışık.
Şimdi bu resimdeki "dizi" isimli dizi tipindeki değişkeni görüyoruz. Bu değişken içindeki elemanlardan biri dizi ve o dizinin içinde bir dizi daha var. .flatten burada devreye giriyor. 3 dizinin içindeki tüm elemanları tek bir dizi haline çeviriyor. Gayet iş yapar.
Kod:
[COLOR="Lime"]>>> [/COLOR]0
1
2
10
20
102
40
24
402
3
4
5
6
7
8
9
Dizi de "For" Döngüsü
Ön bilgi: for döngüsü dizinin elemanlarını teker teker alıp üzerinde işlem yapmamıza yarar. Siz işlemi belirlersiniz sonra sırayla teker teker tüm elemanlara o işlemi yapar. Görelim.
Kullanım olarak:
dizinin_kendisi_veya_dizinin_atandığı_değişken.each do |elemanların_geçici_atanacağı_değişken|
işlem
end
işlem
end
Kod:
[COLOR="Lime"]>>> [/COLOR]0 in karesi: 0
1 in karesi: 1
2 in karesi: 4
3 in karesi: 9
4 in karesi: 16
5 in karesi: 25
6 in karesi: 36
7 in karesi: 49
8 in karesi: 64
9 in karesi: 81
Tek Satırda For Döngüsü
Kullanım olarak:
dizinin_kendisi_veya_dizinin_atandığı_değişken.each {|elemanların_geçici_atanacağı_değişken| işlem }
Kod:
[COLOR="Lime"]>>> [/COLOR]0 in karesi: 0
1 in karesi: 1
2 in karesi: 4
3 in karesi: 9
4 in karesi: 16
5 in karesi: 25
6 in karesi: 36
7 in karesi: 49
8 in karesi: 64
9 in karesi: 81
Aynı Elemanları Diziden Kaldırma
.uniq metodu ile bir dizi de bulunan aynı elemanları ortadan kaldırabiliyoruz. Tıpkı küme gibi. Bir küme de aynı elemandan 2 tane olamaz.
Kod:
[COLOR="Lime"]>>> [/COLOR]0
1
2
3
4
5
5
6
7
8
9
Bir Diziye Diğer Dizinin Elemanlarını ekleme
.concat ile verdiğimiz dizinin elemanlarını orijinal diziye ekleyebiliyoruz. Dizi vermek gerekiyor. Birden fazla dizi de verilebilir.
Kod:
[COLOR="Lime"]>>> [/COLOR]0
1
2
3
4
5
5
6
7
8
9
10
11
12
Veya dan önceki kodda sonraki kodda bu çıktıyı verir. İki kodun aynı anda çıktısı bu değildir.
Dizinin İstediğimiz Yere istediğimiz Elemanı Ekleme
.insert metodu ilk parametre olarak elemanı ekleyeceğimiz yerin indisini alır. Sonra da ne ekleneceğini. Görelim.
Kod:
[COLOR="Lime"]>>> [/COLOR]0
1
2
10
3
4
5
5
6
7
8
9
Ya da birden fazla verebiliriz.
Kod:
[COLOR="Lime"]>>> [/COLOR]0
1
2
10
20
40
50
3
4
5
6
7
8
9
Boş Elemanları Diziden Silme
.compact isimli metodu kullanıyoruz. Boş değer sadece "nil" dir.
Kod:
[COLOR="Lime"]>>> [/COLOR]0
1
2
3
4
5
6
7
8
9
Bir İşlem Yaparak Yeni Dizi Oluşturma
.map ile bunu yapabiliyoruz. Bu da for döngüsü gibi aslında.
Kod:
[COLOR="Lime"]>>> [/COLOR]0
2
4
6
8
10
12
14
16
18
Bir Diziyi Ters Özelleştirme
.select i görmüştük. Altına yapmadım ama onun ters halini de göstereyim.
Kod:
[COLOR="Lime"]>>> [/COLOR]7
8
9
Şimdi eğer .select kullansaydık işleme göre 6 ve gerisini alacaktı. (6,5,4,3,2,1,0). .reject ise .select in tam tersini alıyor.
-sa / -se Diziden Sil
.delete_if yazdığım gibi -sa / -se sil anlamına geliyor. Kod parçasında a değeri 4'ten küçükse sil diyoruz. Küçükler gitti.
Kod:
[COLOR="Lime"]>>> [/COLOR]4
5
6
7
8
9
Dizideki Elemanların Toplamı
.sum ile tüm elemanların toplamını alabiliriz.
Kod:
[COLOR="Lime"]>>> [/COLOR]45
Peki ya Karakter Dizisiyse.
Kod:
[COLOR="Lime"]>>> [/COLOR]KuşBöcekvs.
Şimdi burada parametre vermek gerekiyor. Direkt .sum çalışmıyor hata dönüyor. Ben boş parametre verdim ve sonucu gördük. Dolu parametre verelim.
Kod:
[COLOR="Lime"]>>> [/COLOR]Var yaKuşBöcekvs.
Çıktısı bu.
Bir Dizi Alfabe Sırasına veya Rakam Sırasına Göre Sıralama
.sort metodu burada bizim işimizi görüyor.
Kod:
[COLOR="Lime"]>>> [/COLOR]0
1
6
17
39
40
47
72
99
1000
Kod:
[COLOR="Lime"]>>> [/COLOR]Atmaca
Boğa
Kuş
S
Tüy
Yılan
Burada en çok kullanılanlar ve işinize yarayacağını düşündüklerim var. Okuduğunuz için teşekkürler.
Son düzenleme: