Ruby'de Çok Boyutlu Dizi Nasıl Oluşturulur

Ruby'de Çok Boyutlu Dizi Oluşturma. Ruby çok boyutlu diziler için açık destek sağlamasa da, temel dil bilgisine sahipseniz bir tanesini kendiniz uygulayabilirsiniz. Özünde, dizinin her bir öğesinin başka bir diziyi içerdiği bir "diziler dizisi" oluşturmalısınız. Ruby'de böyle çok boyutlu bir dizi oluşturmak için, dizi dizilerini oluşturmak için kullanılan bir yöntem yazabilirsiniz, böylece kodun tekrarlanması gerekmez.

Ruby'de Çok Boyutlu Dizi Oluşturun

Aşama 1

Yöntemin iskeletini yazınız. Bu yöntem, bir dizi boyut bağımsız değişkeni alacak ve bu boyutların boş bir çok boyutlu dizisini döndürecektir. Örneğin, 10x10'luk bir dizi için bu yöntemi mda (10,10) olarak adlandırın: def mda (genişlik, yükseklik) end

Günün Videosu

Adım 2

Genişlik öğelerinden oluşan bir dizi oluşturun.

Aşama 3

Dizideki her öğe için bir dizi yükseklik öğesi oluşturun. Bu, iki boyutlu bir dizi olarak kullanılacak "dizi dizisini" yapar. Belirli bir uzunlukta boş diziler oluşturmak için, argüman olarak uzunlukla birlikte Array.new yapıcısını kullanın. Başlangıçta dizideki tüm değerler sıfır olacaktır.

4. Adım

Haritayı kullanın! yöntemi de. Harita! yöntem dizideki her öğeyi yineler, her biri için bir blok çalıştırır ve bloğun sonucunu dizi öğesine atar. Aynı sonuç bir for döngüsü kullanılarak da elde edilebilir, ancak harita! yöntem daha özlüdür: def mda (genişlik, yükseklik) a = Array.new (genişlik) a.map! { Array.new (yükseklik) }dönüş

Adım 5

Bu diziyi alt simge (köşeli parantez []) operatörüyle kullanın. Örneğin, "a" adında bir 10x10 diziniz varsa ve 7,3 öğesini istiyorsanız, a[7][3]: a = mda derdiniz (10,10)# Diziyi değerlerle dolduruna[7][5] = "a dize"a[2][9] = 23# Değerleri al a[7][5]puts a[2][9]

6. Adım

Ruby'de yöntem çağrılarını "zincirleme" yeteneğinden yararlanın. Örneğin, Array.new yöntemi bir dizi döndürür. Döndürülen dizide bir yöntemi çağırmak için buna başka bir yöntem çağrısını zincirleyebilirsiniz. Yöntemleri zincirlediğiniz ve bir dönüş ifadesi kullanmadığınız için, değişken adına da ihtiyacınız yoktur: def mda (genişlik, yükseklik) Array.new (width).map!{ Array.new (height) }end

Ruby çok etkileyici. MDA yöntemi, kısa ve özlü tek bir kod satırı olabilir. Fazladan satırlar ve anahtar kelimeler, yalnızca kodun gerçekte olduğundan daha karmaşık görünmesini sağlar. Ruby'de return ifadesi gerekli değildir. Ruby yöntemleri ve blokları, yöntem veya blokta yürütülen son ifadenin sonucunu otomatik olarak döndürür.