J'initialise un tableau de cette façon:
array = Array.new
array << '1' << '2' << '3'
Est-il possible de le faire en une seule étape? Si c'est le cas, comment?
J'initialise un tableau de cette façon:
array = Array.new
array << '1' << '2' << '3'
Est-il possible de le faire en une seule étape? Si c'est le cas, comment?
Comme d'autres l'ont noté, vous pouvez utiliser un littéral de tableau:
array = [ '1', '2', '3' ]
Vous pouvez également, pour votre exemple, l'utilisation d'une gamme:
array = ('1'..'3').to_a # parentheses are required
# or
array = *('1'..'3') # parentheses not required, but included for clarity
Pour les tableaux de beaucoup d'espace délimité par des cordes, le plus simple est de cette notation:
array = %w[ 1 2 3 ]
En général, vous pouvez passer d'un bloc à un Tableau.nouvelle et l'utiliser pour déterminer la valeur de chaque entrée sera:
array = Array.new(3){ |i| (i+1).to_s }
Enfin, bien que cela ne produit pas le même tableau de trois cordes que les autres réponses ci-dessus, notez également que vous pouvez utiliser des agents recenseurs en Ruby 1.8.7+ pour créer des tableaux; par exemple:
array = 1.step(17,3).to_a
#=> [1, 4, 7, 10, 13, 16]
Pour prouver Il y a plus d'un Six façons de le faire:
plus_1 = 1.method(:+)
Array.new(3, &plus_1) # => [1, 2, 3]
Si la méthode 1. (: +) n'était pas possible, vous pourriez aussi faire
plus_1 = Proc.new {|n| n + 1}
Array.new(3, &plus_1) # => [1, 2, 3]
Bien sûr, c'est exagéré dans ce scénario, mais si plus_1
était une expression vraiment longue, vous voudrez peut-être la mettre sur une ligne distincte de la création du tableau.
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.