@ mr.musicman joinfonctionne avec les énumérables de tout ce qui répond to_s, y compris les entiers, mais le résultat sera toujours une chaîne. Si vous voulez un résultat entier, vous pouvez utiliser to_isur le résultat.
sepp2k
1
Si vous avez initialement rompu une chaîne multiligne à l'aide de String#lines, vous pouvez la relier correctement à l'aide de my_string.join('')(notez l'argument de chaîne vide).
Frank Koehl
Pour ajouter à ce que @ sepp2k a dit: joinessaie en #to_strpremier et en #to_ssecond.
Greg Navis
19
Bien qu'un peu plus cryptique que join, vous pouvez également multiplier le tableau par une chaîne.
en plus d'être cryptique, y a-t-il un défaut possible lors de l'utilisation de cette astuce?
marcio
4
@marcioAlmada Pas de défaut, juste des frais généraux minimes. Dans array.c, la première chose que fait Ruby est de vérifier un type de chaîne, puis d'appeler la méthode de jointure. Aussi: faites levier avec des roches de source d'exposition! Essayez par vous-même: $ Array.instance_methods.*($ est un raccourci pour show-source)
okket
1
Voici ma solution:
@arr=['<p>Hello World</p>','<p>This is a test</p>']@arr.reduce(:+)=><p>HelloWorld</p><p>This is a test</p>
Réponses:
Utilisez la
Array#join
méthode (l'argument àjoin
est ce qu'il faut insérer entre les chaînes - dans ce cas un espace):la source
[1,2,3] => 123
?join
fonctionne avec les énumérables de tout ce qui répondto_s
, y compris les entiers, mais le résultat sera toujours une chaîne. Si vous voulez un résultat entier, vous pouvez utiliserto_i
sur le résultat.String#lines
, vous pouvez la relier correctement à l'aide demy_string.join('')
(notez l'argument de chaîne vide).join
essaie en#to_str
premier et en#to_s
second.Bien qu'un peu plus cryptique que
join
, vous pouvez également multiplier le tableau par une chaîne.la source
$ Array.instance_methods.*
($ est un raccourci pour show-source)Voici ma solution:
la source