Ruby Dizilerin [Array (s)] Metodları

ZuL-RaA

Kadim Üye
9 Ara 2017
5,553
840
Semerkant
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.


Atmaca (0), Kuş (1), Kartal (2), Yılan (3)

Eleman Sayısını Öğrenme

wXM3we.png


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

lzUCpI.png


.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

801tsM.png


.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

IFhuAZ.png


.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
üç

LzF2Za.png


Kod:
[COLOR="Lime"]>>> [/COLOR]sıfır
bir
iki
üç
dört
beş
altı

Dizinin n'den Geri Kalan Elemanlarını Alma

oa0x4y.png


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

0WNQEx.png


Kod:
[COLOR="Lime"]>>> [/COLOR]iki
üç
dört
beş
altı
yedi
sekiz
dokuz

Diziden İstediğimiz Elemanı Alma

0vyllS.png


[] köşeli parantez içine indis numarasını veriyoruz. Basit...

Kod:
[COLOR="Lime"]>>> [/COLOR]yedi

Dizinin Son Elemanını Silme

cECi4x.png


.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

e3CONM.png


.shift ile dizinin son elemanını siliyoruz.

Kod:
[COLOR="Lime"]>>> [/COLOR]bir
iki
üç
dört
beş
altı
yedi
sekiz
dokuz

Dizinin Sonuna Eleman Ekleme

HyovSB.png


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

zLFita.png


.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

5dS1m3.png


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

jU0kXN.png


.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

veGXWu.png


.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

56CcUC.png


.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

AwccmI.png


.include? ile kontrol edebiliriz. true veya false döner.

Kod:
[COLOR="Lime"]>>> [/COLOR]true

5vOOk6.png


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. :D

9i6rgG.png


Ş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.

72Q09X.png


Kullanım olarak:

dizinin_kendisi_veya_dizinin_atandığı_değişken.each do |elemanların_geçici_atanacağı_değişken|
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ü

jruah1.png


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

75tlVe.png


.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

hFX1et.png


.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

sSk8kJ.png


.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.

wvEWzb.png


Kod:
[COLOR="Lime"]>>> [/COLOR]0
1
2
10
20
40
50
3
4
5
6
7
8
9

Boş Elemanları Diziden Silme

yWIchX.png


.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

fXYkqL.png


.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.

GR3nDi.png


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

wMnJ9C.png


.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ı

iTTn3y.png


.sum ile tüm elemanların toplamını alabiliriz.

Kod:
[COLOR="Lime"]>>> [/COLOR]45

Peki ya Karakter Dizisiyse.

IK9TBp.png


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.

jBWZGW.png


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

fTxD0E.png


.sort metodu burada bizim işimizi görüyor.

Kod:
[COLOR="Lime"]>>> [/COLOR]0
1
6
17
39
40
47
72
99
1000

0Kl4uO.png


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.

oKEKz1.gif


hVoHfL.png


 
Son düzenleme:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.