Comment créer un tableau multidimensionnel dans 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 en 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 renverra un tableau multidimensionnel vide de ces dimensions. Par exemple, pour un tableau 10x10, appelez cette méthode mda(10,10):def mda(width,height)end
É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 rend le "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! itère chaque élément d'un tableau, exécute un bloc pour chacun et affecte 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 ! est plus concise :def mda(width,height)a =Array.new(width)a.map! { Array.new(height) }return aend
Étape 5
Utilisez ce tableau avec l'opérateur d'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)# Remplissez le tableau avec des valeursa[7][ 5] ="une chaîne"a[2][9] =23# Récupère les valeursputs a[7][5]puts 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 de retour, vous n'avez pas non plus besoin du nom de la variable :def mda(width,height)Array.new(width).map!{ Array.new(height) }end
Astuce
Le rubis 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 dans 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.