e se você estivesse juntando dígitos? [1,2,3] => 123?
Stevenspiel
3
@ mr.musicman jointrabalha com enumeráveis de qualquer coisa que responda to_s, incluindo números inteiros, mas o resultado será sempre uma string. Se você deseja um resultado inteiro, pode usá to_i-lo.
sepp2k
1
Se você inicialmente quebrou uma string de várias linhas usando String#lines, você pode vinculá-la com cuidado usando my_string.join('')(observe o argumento de string vazia).
31915 Frank Koehl
Para adicionar ao que o @ sepp2k disse: jointenta #to_strprimeiro e #to_ssegundo.
Greg Navis
19
Embora um pouco mais enigmático do que join, você também pode multiplicar a matriz por uma string.
além de ser enigmático, existe alguma falha possível ao usar esse truque?
marcio
4
@marcioAlmada Sem falhas, apenas sobrecarga mínima. No array.c, a primeira coisa que Ruby faz é procurar um tipo de string e depois chamar o método join. Também: forçar com pedras de show-source! Tente você mesmo: $ Array.instance_methods.*($ é uma abreviação de show-source)
okket 16/03
1
Aqui está a minha solução:
@arr=['<p>Hello World</p>','<p>This is a test</p>']@arr.reduce(:+)=><p>HelloWorld</p><p>This is a test</p>
Respostas:
Use o
Array#join
método (o argumentojoin
é o que inserir entre as strings - neste caso, um espaço):fonte
[1,2,3] => 123
?join
trabalha com enumeráveis de qualquer coisa que respondato_s
, incluindo números inteiros, mas o resultado será sempre uma string. Se você deseja um resultado inteiro, pode usáto_i
-lo.String#lines
, você pode vinculá-la com cuidado usandomy_string.join('')
(observe o argumento de string vazia).join
tenta#to_str
primeiro e#to_s
segundo.Embora um pouco mais enigmático do que
join
, você também pode multiplicar a matriz por uma string.fonte
$ Array.instance_methods.*
($ é uma abreviação de show-source)Aqui está a minha solução:
fonte