Merhaba arkadaşlar bu haftaki dersimizde Ruby’de Enumeratörler ve Döngülerden bahsedeceğiz ve artık gerçek anlamda Ruby’e özgü kod yazmaya ve bizlere sağladığı kullanışlı fonksiyonları tanımaya başlayacağız.
Bir önceki derslerimizde Ruby’de basit anlamda döngüleri nasıl kullanabileceğimiz hakkında bilgi sahibi olmuştuk, bu dersimizde ise döngülere biraz daha derinlemesine giriş yapacağız ve kendimize has, kişiselleştirebileceğimiz döngüler oluşturacağız.
Biraz sonra örneklerle bahsetmeye başlayacağım döngü çeşitlerinin detaylı kullanımlarını videoyu izleyerek de öğrenebilirsiniz, burada biraz daha basit ve kısa bir anlatım kullanmayı tercih ettim.
Döngü Çeşitleri
1 – Times
Belli bir sayıda ekrana çıktı almak istediğimiz durumlarda kullanabileceğimiz bir Enumeratördür.
Yukarıdaki kod satırlarında, ekrana 5 defalığına bir işlem yapmak istediğimizi belirtiyoruz, “i” değişkeni de o an için bulunduğumuz döngünün indeks‘i olmuş oluyor ve puts ifadesi ile ekrana çıktısını almak istediğimiz zamanda 0,1,2,3,4 rakamlarını ekranda görüyoruz.
Not : Yukarıda kullandığımız “times” metodunun ve bundan sonra kullanacağımız her bir metodun hangi nesneden türediğini aşağıdaki komut satırını kullanarak görebilirsiniz.
Yukarıdaki kod satırının çıktısı olarak da bu dersimizin de başlığı olan “Enumeratör” ifadesini görebilirsiniz. Ruby’de bu şekilde Enumeratör olarak görünen her bir ifadeyi döngü olarak kullanabiliyoruz.
Döngüleri yazarken kullanabileceğimiz birden fazla yazım tekniği var, eğer döngülerimizi çok satırlı olarak yazmak istiyorsak, az önceki örnekte de gördüğünüz gibi do-end ifadelerini kullanabilirsiniz.
Eğer döngümüzü tek satırda halletmek istiyorsak da aşağıdaki yazım tekniğini kullanabilirsiniz.
Yukarıdaki örneklerde do-end ile { } arasındaki farkı şu şekilde özetleyebiliriz, { } işlem önceliğinin ön planda olduğu durumlarda tercih ediyoruz.
2 – Downto
Burada herhangi bir fixnum’dan başka bir fixnum’a kadar sayısı 1 er 1 er azaltacaktır.
Yukarıdaki kod satırının çıktısı 5,4,3,2,1,0 olacaktır
3 – Upto
Burada ise Downto’nun aksine rakamı azaltmak yerine arttıracaktır.
Yukarıdaki ifadenin çıktısı 5,6,7,8,9,10,11,12,13 olacaktır.
4- Step
Belirli bir işlemi belirlediğimiz bir sayı kadar arttırarak gitmesini sağlamak içinde Step Enumeratörünü kullanıyoruz.
Yukarıdaki ifade de 5 den 12 ye kadar 2 şer 2 şer gitmesi gerektiğini söylüyoruz ve çıktı 5,7,9,11,13 şeklinde olacaktır.
5- Each
Array’in herbir elemanını tek tek dolaşmamız gerektiği durumlarda kullanıyoruz.
Yukarıdaki ifade de 2 den 10 kadar olan sayılar arasında sırasıyla geçiş yapılıyor ve ekrana basılan çıktı, 2,3,4,5,6,7,8,9,10 olacaktır.
Aynı işlemi array ile de yapabiliriz.
İfadenin çıktısı 7,1,4,5,2 şeklinde olacaktır.
6- Reduce
Genel de çok fazla elemanı olan bir işlemden tek bir çıktı üretmek için kullanılıyor.
Yukarıdaki ifade de, reduce(0) vererek başlangıç değerini belirledik ve dizimizin 1 den 10 a kadar olacağını söyledik, döngü süresince de getirilen satıları toplam değişkenine yükledik ve döngü sonucunda ise ifadenin çıktısı 55 olacaktır.
7- Map
Dizideki her bir elemana bir işlem uygulayıp bu işlemin sonucunda da bir dizi elde etmemiz gerektiği durumlarda Map’i kullanıyoruz.
Yukarıdaki kod satırlarında da gördüğünüz üzere dizideki her bir elemanın değerini 2 arttırarak ekrana yine dizi şeklinde basacaktır, yani çıktı [3,4,5,6,7] olacaktır.
8- Select
Her hangi bir diziden sadece belli bir grubu almak istediğimiz durumlarda ise Select Enumeratörünü kullanabiliyoruz.
Yukarıdaki kod parçacığının çıktısı ise [4,5,6] olacaktır çünkü select ifadesini kullanırken sadece 3 den büyük rakamları bir araya getirmesini istedik.
Evet, arkadaşlar bugünkü dersimizin de sonuna geldik yukarıda bahsettiğim ifadelerin detaylı kullanımlarını videolu içeriğimizde bulabilirsiniz, bir sonraki dersimizde görüşmek dileği ile… Hoşçakalın.. 🙂