6. Diziler
- 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 aş 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"}