2013-08-05 3 views
3

Quel est le chemin le plus court pour créer ce tableau en Ruby:Comment créer un tableau simple dans Ruby?

[10, 20, 30, 40, 50, 60, 70, 80, 90, 100] 

Merci pour toute aide!

+2

Cela dépend de votre intention. Voulez-vous commencer par 10 et sauter par 10 jusqu'à 100, ou voulez-vous diviser entre 10 et 100 uniformément avec 10, etc? – sawa

+1

Qu'avez-vous écrit? Qu'est-ce que les recherches ont révélé? –

Répondre

8

Vous pouvez utiliser Range et appeler la méthode Enumerable#map sur elle, comme ceci:

(1..10).map{|i| i * 10} 
# => [10, 20, 30, 40, 50, 60, 70, 80, 90, 100] 

Ou, comme suggéré par @ JörgWMittag, avec la méthode Object#method qui renvoie Method exemple qui est converti en proc par & notation:

(1..10).map(&10.method(:*)) 
# => [10, 20, 30, 40, 50, 60, 70, 80, 90, 100] 
+0

Cela fonctionne merci beaucoup! – Tintin81

+6

Ou, en style sans point: '(1..10) .map (& 10.method (: *))'. –

+0

@ JörgWMittag Nice pour apprendre .. celui-ci ... –

13

Qu'en est-Range#step:

(10..100).step(10).to_a 
#=> [10, 20, 30, 40, 50, 60, 70, 80, 90, 100] 

Ou Numeric#step:

10.step(100, 10).to_a 
#=> [10, 20, 30, 40, 50, 60, 70, 80, 90, 100] 
+0

Vous deuxième est un bon à savoir ... pour moi ... :) Maintenant, j'ai arrêté de penser à des solutions alternatives .. –

+1

# 2 est ce que je voulais recommander. –

2

Ce construit un tableau directement à partir du constructeur.

Array.new(10){|i| (i + 1) * 10} 
# => [10, 20, 30, 40, 50, 60, 70, 80, 90, 100] 
Questions connexes