que es “?” en ruby

Ruby 1.9

irb(main):001:0> ?c => "c" 

Ruby 1.8.6

  irb(main):001:0> ?c => 99 

Que hace “?” ¿significa?

Denota un “personaje”. En ruby ​​1.8, esto fue representado por el código ascii del personaje. En Ruby 1.9, es un String de un solo carácter.

En 1.8 le dan el valor ASCII de un personaje, en 1.9 son literales de caracteres:

 >> RUBY_VERSION #=> "1.8.7" >> ?a #=> 97 >> RUBY_VERSION #=> "1.9.2" >> ?a #=> "a" >> *[?a..?c] #=> ["a", "b", "c"] 
 ruby-1.9.2-p0 > ?c == "c" => true