Ruby Kod Parçacıkları - 3 (Range Kullanımı)
İçindekiler
Range sınıfı ile başlangıç ve bitiş değerleri belli olan aralıklar tanımlanabilir. Bu aralığa ait değerler sayısal veya metinsel olabileceği gibi kullanıcı tanımlı sınıf örnekleri de olabilir (Bu benim için de henüz ileri seviye bir konu olduğundan ilerleyen günlerde değinmeye çalışacağım) Gelin bu aralıkların Ruby programlama dilinde nasıl kullanıldığına kısaca bakalım.
Bir önceki kod parçacığında (örneğin Ranges.rb)
ve her zaman olduğu gibi kod parçacığımıza ait kısa notlarımızı paylaşalım.
harfler1 ve harfler2 isimli Range’lerin üretim biçimleri arasında sadece bir nokta farkı vardır. İki nokta kullanıldığında son yazılan değer de aralığa dahil edilir. Üç nokta kullanıldığında ise son değer aralığa dahil edilmez. Range sınfına ait each metodundan yararlanarak tek bir ifade ile tüm aralık değerleri üzerinde işlem uygulanabilir. 1den 100e kadar (100 dahil) değerlerin toplamını bulmak için each metodundan yararlanılmıştır. Bir sonraki each metodu kullanımında ise -100den -1e kadar ki sayıları içeren bir değer aralığı oluşturulmuştur. Yani negatif sayılardan oluşan değer aralıkları da belirlenebilir. Pek tabi ondalıklı değer aralıkları da söz konusu olabilir. Bunu bir deneyin;) Bir aralığın alt ve üst değerlerini öğrenmek için begin ve end metodlarından yararlanılır. Eğer bir aralığın son n değeri elde edilmek istenirse last metodundan yararlanılabilir. Metodun parametresi en sağdan geriye doğru kaç eleman alınacağını belirtir. Bir aralığı oluşturmak için nokta notasyonu dışında yapıcı metod da kullanılabilir. new ile erişilen initialize metodu parametre olarak değer aralığının başlangıç ve bitiş değerlerini alır. Eğer bir aralığın elemanlarında belirli adım değerleri ile ilerlenmek isteniyorsa step metodunu kullanabiliriz. Aralıkların faydalı bir şekilde kullanıldığı alanlardan birisi de case koşul ifadeleridir. puan hesaplamasındaki kullanıma dikkat edelim.
Böylece geldik bir kod parçacığının daha sonuna. Tekrardan görüşünceye dek hepinize mutlu günler dilerim.