Ruby中的"?"是什么意思?

7

Ruby 1.9

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

Ruby 1.8.6

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

“?”代表什么意思?

1
我认为 ?a 的行为方式与 "a"[0] 相同。 - Bohdan
3个回答

11

这表示一个“字符”。在 Ruby 1.8 中,它是由字符的 ASCII 码表示的。而在 Ruby 1.9 中,它则是一个单字符的 String


7
在1.8版本中,会给你字符的ASCII值,在1.9版本中,它们是字符字面量。
>> RUBY_VERSION #=> "1.8.7"
>> ?a #=> 97 
>> RUBY_VERSION #=> "1.9.2"
>> ?a #=> "a"
>> *[?a..?c] #=> ["a", "b", "c"]

-2
ruby-1.9.2-p0 > ?c == "c"
 => true 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接