6. Diziler

İçindekiler
6.1. Aşlar

Ruby'de köşeli ayraçlar [] arasına elemanları yazarak ve virgüller yardımıyla ayırarak bir dizi oluşturabilirsiniz. Ruby'de diziler farklı nesne türlerini ayırdedebilecek niteliktedir.

ruby> ary = [1, 2, "3"]
   [1, 2, "3"]

Diziler de aynı dizgeler gibi birleştirilebilir ya da tekrar edilebilir.

ruby> ary + ["foo", "bar"]
   [1, 2, "3", "foo", "bar"]
ruby> ary * 2
   [1, 2, "3", 1, 2, "3"]

Dizinin herhangi bir elemanına ulaşmak için indisleri kullanabiliriz.

ruby> ary[0]
   1
ruby> ary[0,2]
   [1, 2]
ruby> ary[0..1]
   [1, 2]
ruby> ary[-2]
   2
ruby> ary[-2,2]
   [2, "3"]
ruby> ary[-2..-1]
   [2, "3"]

(Negatif indisler dizinin sonundan başlanmasını sağlar.)

Diziler join kullanılarak dizgelere ve dizgeler split kullanılarak dizilere dönüştürülebilirler.

ruby> str = ary.join(":")
   "1:2:3"
ruby> str.split(":")
   ["1", "2", "3"]

6.1. Aşlar

Aş (hash), elemanlarına indisler yerine herhangi bir değer olabilen anahtarlar yardımıyla erişilebilen özelleştirilmiş dizilerdir. Böyle dizilere dendiği gibi ilişkisel dizi de denir; biz ruby dünyasında aş deyimini tercih ederiz. Bir aş kaşlı ayraçlar arasına yazılarak oluşturulabilir. Dizilerde herhangi bir elemana ulaşmak için indisleri kullandığımız gibi, aşlarda elemana ulaşmak için anahtarları kullanırız.

ruby>  h = {1 => 2, "2" => "4"}
   {1=>2, "2"=>"4"}
ruby> h[1]
   2
ruby> h["2"]
   "4"
ruby> h[5]
   nil
ruby> h[5] = 10     # değer ekleme
   10
ruby> h
   {5=>10, 1=>2, "2"=>"4"}
ruby> h.delete 1   # değer silme
   2
ruby> h[1]
   nil
ruby> h
   {5=>10, "2"=>"4"}