@ mr.musicman jointrabaja con enumerables de todo lo que responde to_s, incluidos los enteros, pero el resultado siempre será una cadena. Si desea un resultado entero, puede usarlo to_ien el resultado.
sepp2k
1
Si inicialmente rompió una cadena de varias líneas usando String#lines, puede volver a unirla usando my_string.join('')(tenga en cuenta el argumento de cadena vacía).
Frank Koehl
Para agregar a lo que dijo @ sepp2k: joinintenta #to_strprimero y #to_ssegundo.
Greg Navis
19
Si bien es un poco más críptico que join, también puede multiplicar la matriz por una cadena.
Además de ser críptico, ¿hay alguna falla posible al usar este truco?
marcio
44
@marcioAlmada Sin fallas, solo gastos generales mínimos. En array.c, lo primero que hace Ruby es buscar un tipo de cadena y luego llamar al método de unión. Además: ¡haga palanca con rocas de fuente de espectáculo! Pruébelo usted mismo: $ Array.instance_methods.*($ es la abreviatura de show-source)
okket
1
Aquí está mi solución:
@arr=['<p>Hello World</p>','<p>This is a test</p>']@arr.reduce(:+)=><p>HelloWorld</p><p>This is a test</p>
Respuestas:
Use el
Array#join
método (el argumentojoin
es qué insertar entre las cadenas, en este caso un espacio):fuente
[1,2,3] => 123
?join
trabaja con enumerables de todo lo que respondeto_s
, incluidos los enteros, pero el resultado siempre será una cadena. Si desea un resultado entero, puede usarloto_i
en el resultado.String#lines
, puede volver a unirla usandomy_string.join('')
(tenga en cuenta el argumento de cadena vacía).join
intenta#to_str
primero y#to_s
segundo.Si bien es un poco más críptico que
join
, también puede multiplicar la matriz por una cadena.fuente
$ Array.instance_methods.*
($ es la abreviatura de show-source)Aquí está mi solución:
fuente