【发布时间】:2014-01-16 04:16:31
【问题描述】:
Chris Pine 的如何编程提到以下内容:
?T
应该返回84。当我运行它时,它返回"T"。我怀疑存在版本差异。我的猜测是 ? 是 Array 或 String 方法,但我找不到文档。 ?T 是做什么的?
【问题讨论】:
Chris Pine 的如何编程提到以下内容:
?T
应该返回84。当我运行它时,它返回"T"。我怀疑存在版本差异。我的猜测是 ? 是 Array 或 String 方法,但我找不到文档。 ?T 是做什么的?
【问题讨论】:
在此上下文中,带有字符的? 是文字单字符串。所以?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 中的更改,以返回单个字符串而不是 ASCII 字符值。 (其中 T 的 ASCII 值为 84 )
1.9.3p429 :006 > ?T.ord
=> 84
【讨论】: