Come creare un array multidimensionale in Ruby

Come creare un array multidimensionale in Ruby. Sebbene Ruby non fornisca un supporto esplicito per gli array multidimensionali, puoi implementarne uno tu stesso se hai una conoscenza di base del linguaggio. In sostanza, devi creare un "array di array" in cui ogni elemento dell'array contiene un altro array. Per creare un tale array multidimensionale in Ruby, puoi scrivere un metodo utilizzato per generare gli array di array in modo che il codice non debba essere ripetuto.

Crea un array multidimensionale in Ruby

Passo 1

Scrivi lo scheletro del metodo. Questo metodo prenderà un numero di argomenti di dimensione e restituirà un array multidimensionale vuoto di quelle dimensioni. Ad esempio, per un array 10x10, chiama questo metodo mda (10,10):def mda (larghezza, altezza) end

Video del giorno

Passo 2

Crea un array di elementi di larghezza.

Passaggio 3

Crea un array di elementi altezza per ogni elemento nell'array. Questo rende la "matrice di matrici" che verrà utilizzata come matrice bidimensionale. Per creare array vuoti di una lunghezza specifica, utilizzare il costruttore Array.new con la lunghezza come argomento. Inizialmente, tutti i valori nell'array saranno nulli.

Passaggio 4

Usa la mappa! anche il metodo. La mappa! Il metodo itera ogni elemento in un array, esegue un blocco per ognuno e assegna il risultato del blocco all'elemento dell'array. Lo stesso risultato può essere ottenuto utilizzando un ciclo for, ma la mappa! il metodo è più conciso: def mda (larghezza, altezza) a = Array.new (larghezza) a.map! { Array.new (altezza) }return aend

Passaggio 5

Utilizzare questo array con l'operatore pedice (parentesi quadre []). Ad esempio, se avessi un array 10x10 chiamato "a" e volessi l'elemento 7,3, diresti a[7][3]: a = mda (10,10)# Riempi l'array con i valoria[7][5] = "a stringa"a[2][9] = 23# Recupera i valori mette a[7][5]mette a[2][9]

Passaggio 6

Approfitta della possibilità di "concatenare" le chiamate al metodo in Ruby. Ad esempio, il metodo Array.new restituisce una matrice. Puoi concatenare un'altra chiamata al metodo su quella per chiamare un metodo sull'array restituito. Dal momento che stai concatenando i metodi e non usando un'istruzione return, non hai nemmeno bisogno del nome della variabile: def mda (larghezza, altezza) Array.new (larghezza).map!{ Array.new (altezza) }end

Consiglio

Ruby è molto espressivo. Il metodo MDA può essere una singola riga di codice breve e concisa. Le righe e le parole chiave aggiuntive rendono il codice solo più complicato di quanto non sia in realtà. L'istruzione return non è necessaria in Ruby. I metodi e i blocchi di Ruby restituiscono automaticamente il risultato dell'ultima istruzione eseguita nel metodo o nel blocco.