【问题标题】:Why does TCPsocket work in ruby 1.8.7为什么 TCPsocket 在 ruby​​ 1.8.7 中工作
【发布时间】:2015-02-26 19:39:50
【问题描述】:

运行这段代码

rvm 1.8.7,1.9.3-p547 do ruby -r socket -e "puts TCPSocket == TCPsocket"

为什么在 ruby​​ 1.8.7 上这又是真的?

【问题讨论】:

    标签: ruby tcpsocket


    【解决方案1】:

    一点源考古表明originally the class was named TCPsocket(带有小写s)。后来它是renamed to TCPSocket(大写s),但是用旧名称设置了一个常量。在 Ruby 1.8.7 中就是这种情况,所以对于那个版本,TCPsocketTCPSocket 指的是同一个类,所以会比较相等。

    后来还是original name was removed,只留下TCPSocket。从 1.9 开始就是这种情况,因此在最近的版本中使用 TCPsocket 将导致 uninitialized constant 错误。

    至于为什么,我猜Matz最初使用TCPsocket,后来意识到TCPSocket是一个更好的名称,但为了兼容,暂时保留了旧名称。

    【讨论】:

    • 您先生会让琼斯博士感到自豪!谢谢
    猜你喜欢
    • 1970-01-01
    • 2011-09-23
    • 1970-01-01
    • 1970-01-01
    • 2011-02-17
    • 2011-02-14
    • 1970-01-01
    • 2011-05-26
    • 1970-01-01
    相关资源
    最近更新 更多