【问题标题】:How does `?n` differ from `'n'`? [duplicate]`?n` 与 `'n'` 有何不同? [复制]
【发布时间】:2014-01-16 04:16:31
【问题描述】:

Chris Pine 的如何编程提到以下内容:

?T

应该返回84。当我运行它时,它返回"T"。我怀疑存在版本差异。我的猜测是 ?ArrayString 方法,但我找不到文档。 ?T 是做什么的?

【问题讨论】:

    标签: ruby string ruby-1.8


    【解决方案1】:

    在此上下文中,带有字符的? 是文字单字符串。所以?T是字符串“T”,puts ?Tputs "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 
    

    【讨论】:

    • 这是 Ruby 1.9+ 的变化。
    猜你喜欢
    • 1970-01-01
    • 2021-02-24
    • 2023-03-16
    • 2018-08-03
    • 1970-01-01
    • 2013-03-03
    • 2011-12-12
    • 2018-08-06
    • 1970-01-01
    相关资源
    最近更新 更多