J'initialise un tableau de cette façon:
array = Array.new
array << '1' << '2' << '3'
Est-il possible de faire cela en une seule étape? Si c'est le cas, comment?
ruby
arrays
initialization
user502052
la source
la source
array = Array.new << 1 << 2 << 3
)1
pour'1'
.Réponses:
Vous pouvez utiliser un littéral de tableau:
Vous pouvez également utiliser une plage:
Pour les tableaux de chaînes délimitées par des espaces, vous pouvez utiliser la syntaxe de chaîne de pourcentage :
Vous pouvez également passer un bloc à
Array.new
pour déterminer la valeur de chaque entrée:Enfin, bien qu'il ne produise pas le même tableau de trois chaînes que les autres réponses ci-dessus, notez également que vous pouvez utiliser des énumérateurs dans Ruby 1.8.7+ pour créer des tableaux; par exemple:
la source
to_a
([*'1'..'3']
).Array[ "1","2","3"] #=> ["1","2","3"]
(je ne pense pas que cette méthode ait quoi que ce soit à voir avec le constructeur littéral de tableau). Vous pouvez également utiliser le Kernel # Array de niveau supérieur (le nom de la méthode ressemble à un nom de classe)Array(1..5) #=> [1,2,3,4,5]
Bon mot:
ou
ou
ou
ou
la source
[1,2,3]
une seule initialisation. En outre, le vôtre est plus de personnages. De plus, vous avez créé un tableau de Fixnums alors que l'OP demandait un tableau de chaînes.En plus des réponses ci-dessus, vous pouvez également le faire
la source
>> [*?1..?5] #=> ["1", "2", "3", "4", "5"]
.Pour prouver qu'il ya plus d'
unSix façons de le faire:Si 1.method (: +) n'était pas possible, vous pouvez également faire
Bien sûr, c'est exagéré dans ce scénario, mais s'il
plus_1
s'agissait d'une expression vraiment longue, vous voudrez peut-être la mettre sur une ligne distincte de la création du tableau.la source
Tu peux faire
Comme d'autres l'ont noté, vous pouvez également initialiser un tableau avec la notation% w comme ceci:
ou
Veuillez noter que dans les deux cas, chaque élément est une chaîne plutôt qu'un entier. Donc, si vous voulez un tableau dont les éléments sont des entiers, vous ne devez pas envelopper chaque élément avec des apostrophes:
De plus, vous n'avez pas besoin de mettre une virgule entre les éléments (ce qui est nécessaire lors de la création d'un tableau sans cette notation% w). Si vous faites cela (ce que j'ai souvent fait par erreur), comme dans:
ses éléments seront trois chaînes ---- "1,", "2,", "3". Donc si vous faites:
la sortie sera:
ce n'est pas ce que nous voulons ici.
J'espère que cela aidera à clarifier le point!
la source
Pour créer un tel tableau, vous pouvez faire:
la source
Si vous avez un tableau de chaînes, vous pouvez également l'initialiser comme ceci:
array = %w{1 2 3}
séparez simplement chaque élément avec n'importe quel espace
la source
Vous pouvez initialiser un tableau en une seule étape en écrivant les éléments
[]
comme ceci:la source
Vous pouvez simplement le faire avec la
%w
notation dans les tableaux ruby.Il ajoutera les valeurs du tableau 1, 2, 3 au tableau et affichera la sortie comme
["1", "2", "3"]
la source