Comment créer un tableau multidimensionnel en Ruby

Comment créer un tableau multidimensionnel en Ruby Bien que Ruby ne fournisse pas de support explicite pour les tableaux multidimensionnels, vous pouvez en implémenter un vous-même si vous avez une connaissance de base du langage. Vous devez essentiellement créer un "tableau de tableaux" dans lequel chaque élément du tableau contient encore un autre tableau. Pour créer un tel tableau multidimensionnel dans Ruby, vous pouvez écrire une méthode utilisée pour générer les tableaux de tableaux afin que le code n'ait pas à être répété.

Créer un tableau multidimensionnel en Ruby

Étape 1

Écrivez le squelette de la méthode. Cette méthode prendra un certain nombre d'arguments de dimension et retournera un tableau multidimensionnel vide de ces dimensions. Par exemple, pour un tableau 10x10, appelez cette méthode mda (10,10):def mda (largeur, hauteur) end

Vidéo du jour

Étape 2

Créez un tableau d'éléments de largeur.

Étape 3

Créez un tableau d'éléments de hauteur pour chaque élément du tableau. Cela fait du « tableau de tableaux » qui sera utilisé comme un tableau à deux dimensions. Pour créer des tableaux vides d'une longueur spécifique, utilisez le constructeur Array.new avec la longueur comme argument. Initialement, toutes les valeurs du tableau seront nulles.

Étape 4

Utilisez la carte! méthode aussi. La carte! La méthode itère chaque élément d'un tableau, exécute un bloc pour chacun et attribue le résultat du bloc à l'élément du tableau. Le même résultat peut être obtenu en utilisant une boucle for, mais la carte! La méthode est plus concise: def mda (largeur, hauteur) a = Array.new (largeur) a.map! { Array.new (hauteur) }retourner à la fin

Étape 5

Utilisez ce tableau avec l'opérateur indice (crochets []). Par exemple, si vous aviez un tableau 10x10 appelé "a" et que vous vouliez l'élément 7,3, vous diriez a[7][3]: a = mda (10,10)# Remplir le tableau avec des valeursa[7][5] = "une chaîne"a[2][9] = 23# Récupérer des valeursmet a[7][5]met a[2][9]

Étape 6

Tirez parti de la possibilité de « chaîner » les appels de méthode dans Ruby. Par exemple, la méthode Array.new renvoie un tableau. Vous pouvez enchaîner un autre appel de méthode sur celui-ci pour appeler une méthode sur le tableau renvoyé. Puisque vous enchaînez les méthodes et que vous n'utilisez pas d'instruction return, vous n'avez pas non plus besoin du nom de la variable: def mda (width, height) Array.new (width).map!{ Array.new (height) }end

Pointe

Ruby est très expressif. La méthode MDA peut être une seule ligne de code courte et concise. Les lignes et les mots-clés supplémentaires ne font que rendre le code plus compliqué qu'il ne l'est réellement. L'instruction return n'est pas nécessaire en Ruby. Les méthodes et blocs Ruby renvoient automatiquement le résultat de la dernière instruction exécutée dans la méthode ou le bloc.