From: VICTOR GOLDBERG Date: 2008-05-07T23:35:05+09:00 Subject: Re: Interesting result of a newbie mistake Thank you all that responded. maestroiut's explanation was especially enlightening. V�ctor ================================================ wrote in message news:112782.26330.qm@web54305.mail.re2.yahoo.com... ----- Original Message ---- > From: VICTOR GOLDBERG > To: ruby-talk ML > Sent: Wednesday, May 7, 2008 1:10:17 PM > Subject: Interesting result of a newbie mistake > > Instead of writing > a = %w{ ant cat dog } > I wrote > a = %{ ant cat dog } That defines a string. > puts a[2] --> 110 The reason is that indexing a string in Ruby 1.8 and previous versions returns the character code. That usually comes as a surprise to beginners. This behavior changes in Ruby 1.9 to return the character (see http://eigenclass.org/hiki.rb?Changes+in+Ruby+1.9#l116). See the following IRB Ruby 1.8 session: $ irb >> a = %{ ant cat dog } => " ant cat dog " >> a.class a.class => String >> a[2] a[2] => 110 >> a[2].chr a[2].chr => "n" >> > > I didn't find an explanation for this result in Dave Thomas' book > Anybody volunteers a response? If you look for the String class and the chr method into the index of the first edition http://ruby-doc.org/docs/ProgrammingRuby/ you will find examples showing this behavior. Christophe > > Thanks, > V�ctor