# Diverso comportamento del metodo map tra ruby 1.8 e ruby 1.9

**URL:** <https://www.ruby-forum.com/t/diverso-comportamento-del-metodo-map-tra-ruby-1-8-e-ruby-1-9/215611>\
**Category:** IT\
**Created:** [January 10, 2012, 1:35pm UTC](https://www.ruby-forum.com/t/diverso-comportamento-del-metodo-map-tra-ruby-1-8-e-ruby-1-9/215611 "2012-01-10T13:35:02Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![luislavena](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/0ea827/32.png) [@luislavena](https://www.ruby-forum.com/u/luislavena)\
**Post date:** [January 10, 2012, 1:35pm UTC](https://www.ruby-forum.com/t/diverso-comportamento-del-metodo-map-tra-ruby-1-8-e-ruby-1-9/215611/1 "2012-01-10T13:35:02Z")

</div>

Il seguente codice:

= render :text =\> @viario.map {|it| “#{it}\n”}

in ruby 1.8 mi visualizzava il contenuto dell’array andando a capo ad  
ogni nuovo valore.  
Lo stesso codice con ruby 1.9 visualizza tutto in un’unica riga ☹  
Perche’ non riconosce il carattere di newline?

---

<div class="post-metadata">

**Author:** ![msan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/3ab097/32.png) [@msan](https://www.ruby-forum.com/u/msan)\
**Post date:** [January 10, 2012, 2:25pm UTC](https://www.ruby-forum.com/t/diverso-comportamento-del-metodo-map-tra-ruby-1-8-e-ruby-1-9/215611/2 "2012-01-10T14:25:16Z")

</div>

> Il seguente codice:
> 
> = render :text =\> @viario.map {|it| “#{it}\n”}
> 
> in ruby 1.8 mi visualizzava il contenuto dell’array andando a capo ad  
> ogni nuovo valore.  
> Lo stesso codice con ruby 1.9 visualizza tutto in un’unica riga ☹  
> Perche’ non riconosce il carattere di newline?

Non so, ma potrebbe essere una soluzione usare un ‘join’?

@viario.join(“\n”)

–  
David N. Welton

> **[David N. Welton](https://www.welton.it/davidw/)**

[http://www.dedasys.com/](http://www.dedasys.com/)

---

<div class="post-metadata">

**Author:** ![msan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/3ab097/32.png) [@msan](https://www.ruby-forum.com/u/msan)\
**Post date:** [January 10, 2012, 4:28pm UTC](https://www.ruby-forum.com/t/diverso-comportamento-del-metodo-map-tra-ruby-1-8-e-ruby-1-9/215611/3 "2012-01-10T16:28:08Z")

</div>

questo funziona

= render :text =\> @viario.map {|it| it}.join("\n")

grazie mille.

---

<div class="post-metadata">

**Author:** ![msan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/3ab097/32.png) [@msan](https://www.ruby-forum.com/u/msan)\
**Post date:** [January 10, 2012, 2:51pm UTC](https://www.ruby-forum.com/t/diverso-comportamento-del-metodo-map-tra-ruby-1-8-e-ruby-1-9/215611/4 "2012-01-10T14:51:56Z")

</div>

2012/1/10 David W. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

> @viario.join(“\n”)

Credo sia perch @viario.map {|it| “#{it}\n”} un array di stringhe, non  
una stringa sola. userei anche io una join questo caso. in casistiche pi  
generali dove devi ridurre una lista a un valore la funzione da usare  
reduce/inject.

Ciao  
Stefano

---

<div class="post-metadata">

**Author:** ![msan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/3ab097/32.png) [@msan](https://www.ruby-forum.com/u/msan)\
**Post date:** [January 10, 2012, 4:54pm UTC](https://www.ruby-forum.com/t/diverso-comportamento-del-metodo-map-tra-ruby-1-8-e-ruby-1-9/215611/5 "2012-01-10T16:54:11Z")

</div>

a occhio, dovrebbe funzionare anche cos:

@viario.join("\n")

ciao,  
A.

---

<div class="post-metadata">

**Author:** ![msan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/3ab097/32.png) [@msan](https://www.ruby-forum.com/u/msan)\
**Post date:** [January 10, 2012, 4:21pm UTC](https://www.ruby-forum.com/t/diverso-comportamento-del-metodo-map-tra-ruby-1-8-e-ruby-1-9/215611/6 "2012-01-10T16:21:56Z")

</div>

irb\>%w[1 2 3 4 5 6].map{|it| it}.join("\n")  
=\> “1\n2\n3\n4\n5\n6”

non capisce il “\n”

---

<div class="post-metadata">

**Author:** ![msan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/3ab097/32.png) [@msan](https://www.ruby-forum.com/u/msan)\
**Post date:** [January 11, 2012, 2:35pm UTC](https://www.ruby-forum.com/t/diverso-comportamento-del-metodo-map-tra-ruby-1-8-e-ruby-1-9/215611/7 "2012-01-11T14:35:44Z")

</div>

Il metodo map non mi risulta ma è sicuramente cambiato il metodo to\_s  
degli array che in ruby 1.9 non è più un semplice concatenamento di  
valori

1.8.7  
irb(main):004:0\> [1, 2, 3].to\_s  
=\> “123”

1.9.x  
irb(main):003:0\> [1, 2, 3].to\_s  
=\> “[1, 2, 3]”

Probabilmente hai riscontrato la differenza perchè ottenevi una  
conversione implicita es. quando inserisci un valore in una stringa con  
#{} viene sempre prima convertito in stringa

---

<div class="post-metadata">

**Author:** ![msan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/3ab097/32.png) [@msan](https://www.ruby-forum.com/u/msan)\
**Post date:** [January 10, 2012, 5:14pm UTC](https://www.ruby-forum.com/t/diverso-comportamento-del-metodo-map-tra-ruby-1-8-e-ruby-1-9/215611/8 "2012-01-10T17:14:00Z")

</div>

2012/1/10 Andrea P. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> a occhio, dovrebbe funzionare anche cos:
> 
> @viario.join(“\n”)

Si esatto, hai ragione.
