什么是ruby中的“?”

Ruby 1.9

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

Ruby 1.8.6

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

什么“?” 意思 ?

它表示“角色”。 在ruby 1.8中,这是由角色的ascii代码表示的。 在Ruby 1.9中,它是一个单String

在1.8中,它们为您提供字符的ASCII值,在1.9中它们是字符文字:

 >> 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