Chris Pine的如何编程提到以下内容:
?T
应该返回84
。当我运行它时,它返回"T"
。我怀疑存在版本差异。我的猜测是?
是Array
或String
方法,但我找不到文档。 ?T
做了什么?
答案 0 :(得分:8)
在此上下文中,带有字符的?
是一个文字单字符串。因此?T
是字符串“T”,puts ?T
与puts "T"
相同您可以将其投入IRB以检查它:
1.9.3p429 :002 > ?T
=> "T"
1.9.3p429 :001 > ?T.class
=> String
1.9.3p429 :003 > puts ?T
T
=> nil
相关的现有SO问题和答案:
编辑添加:根据上面链接的答案的注释,这可能是ruby 1.9中的更改,以返回单个字符String而不是ASCII字符值。 (T的ASCII值为84)
1.9.3p429 :006 > ?T.ord
=> 84