Je suis nouveau en programmation. Quelqu'un peut m'expliquer ce qu' .map
ferait:
params = (0...param_count).map
Je suis nouveau en programmation. Quelqu'un peut m'expliquer ce qu' .map
ferait:
params = (0...param_count).map
L' map
méthode prend un objet énumérable et d'un bloc, et exécute le bloc pour chaque élément, en sortie de chaque valeur retournée par le bloc (de l'objet d'origine est inchangé, sauf si vous utilisez map!)
:
[1, 2, 3].map { |n| n * n } #=> [1, 4, 9]
Array
et Range
sont énumérables types. map
avec un bloc retourne un Tableau. map!
mute le tableau d'origine.
Où est-ce utile, et quelle est la différence entre map!
et each
? Voici un exemple:
names = ['danil', 'edmund']
# here we map one array to another, convert each element by some rule
names.map! {|name| name.capitalize } # now names contains ['Danil', 'Edmund']
names.each { |name| puts name + ' is a programmer' } # here we just do something with each element
La sortie:
Danil is a programmer
Edmund is a programmer
map
, avec select
et each
est l'un des Rubis de chevaux de trait dans mon code.
Il vous permet d'exécuter une opération sur chacun de vos tableau d'objets et de les renvoyer tous dans le même endroit. Un exemple serait d'incrémenter un tableau de nombres par un:
[1,2,3].map {|x| x + 1 }
#=> [2,3,4]
Si vous pouvez exécuter une méthode unique sur votre éléments du tableau, vous pouvez le faire dans un texte-style comme suit:
Pour ce faire, avec l'exemple ci-dessus que vous avez à faire quelque chose comme ceci
class Numeric
def plusone
self + 1
end
end
[1,2,3].map(&:plusone)
#=> [2,3,4]
Plus simplement utiliser l'esperluette raccourci technique, prenons un autre exemple:
["vanessa", "david", "thomas"].map(&:capitalize)
#=> ["VANESSA", "DAVID", "THOMAS"]
Transformer les données en Ruby s'agit souvent d'une cascade d' map
des opérations. Étude map
& select
, ils sont quelques-uns des plus utiles méthodes Ruby dans la bibliothèque du primaire. Ils sont tout aussi important que l' each
.
(map
est aussi un alias pour collect
. Utilisez ce qui fonctionne le mieux pour vous sur le plan conceptuel.)
Il "cartes" d'une fonction à chaque élément de l' Enumerable
- dans ce cas, une gamme. Alors il appelle le bloc passé une seule fois pour chaque nombre entier de 0 à param_count
(exclusif - vous avez raison sur les points) et retourne un tableau contenant chaque valeur de retour.
Voici la documentation pour Enumerable#map
. Il dispose également d'un alias, collect
.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.