@ mr.musicman joindziała z wyliczeniami wszystkiego, na co odpowiada to_s, w tym liczb całkowitych, ale wynikiem zawsze będzie ciąg. Jeśli chcesz uzyskać wynik w postaci liczby całkowitej, możesz użyć to_ina wyniku.
wrzesień
1
Jeśli początkowo podzieliłeś wielowierszowy ciąg za pomocą String#lines, możesz rozsądnie powiązać go z powrotem za pomocą my_string.join('')(zwróć uwagę na pusty argument ciągu).
Frank Koehl
Aby dodać do tego, co powiedział @ sepp2k: joinpróbuje #to_strpierwsza i #to_sdruga.
Greg Navis
19
Chociaż jest to nieco bardziej tajemnicze niż join, możesz również pomnożyć tablicę przez ciąg.
poza tym, że jest tajemniczy, czy jest jakaś możliwa wada podczas używania tej sztuczki?
marcio
4
@marcioAlmada Żadnej wady, tylko minimalne obciążenie. W array.c pierwszą rzeczą, jaką Ruby robi, jest sprawdzenie typu łańcucha, a następnie wywołanie metody join. A także: podważaj skały z pokazów! Spróbuj sam: $ Array.instance_methods.*($ to skrót od źródła show-source)
okket
1
Oto moje rozwiązanie:
@arr=['<p>Hello World</p>','<p>This is a test</p>']@arr.reduce(:+)=><p>HelloWorld</p><p>This is a test</p>
Odpowiedzi:
Użyj
Array#join
metody (argumentem dojoin
jest to, co należy wstawić między ciągami - w tym przypadku spacja):źródło
[1,2,3] => 123
?join
działa z wyliczeniami wszystkiego, na co odpowiadato_s
, w tym liczb całkowitych, ale wynikiem zawsze będzie ciąg. Jeśli chcesz uzyskać wynik w postaci liczby całkowitej, możesz użyćto_i
na wyniku.String#lines
, możesz rozsądnie powiązać go z powrotem za pomocąmy_string.join('')
(zwróć uwagę na pusty argument ciągu).join
próbuje#to_str
pierwsza i#to_s
druga.Chociaż jest to nieco bardziej tajemnicze niż
join
, możesz również pomnożyć tablicę przez ciąg.źródło
$ Array.instance_methods.*
($ to skrót od źródła show-source)Oto moje rozwiązanie:
źródło