Ruby'de köşeli parantezler [] 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"]
|
Çırpılar
Çırpılar (hash) elemanlarına indisler yerine herhangi bir değer olabilen anahtarlar yardımıyla erişilebilen özelleştirilmiş dizilerdir. Böyle dizilere çırpı dendiği gibi isim-değer çiftleri de denir; biz ruby dünyasında çırpı deyimini tercih ederiz. Bir çırpı kaşlı ayraçlar arasına yazılarak oluşturulabilir. Dizilerde herhangi bir elemana ulaşmak için indisleri kullandığımız gibi çırpı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"} |