/ /ルビー1.8.7でTCPソケットが動作する理由 - ruby​​、tcpsocket

なぜTCPsocketはruby 1.8.7で動作するのですか? - ruby​​、tcpsocket

このコードを実行する

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

なぜRuby 1.8.7でこれが真実に戻ってくるのでしょうか?

回答:

回答№1は5

ソース考古学のビットは、 もともとクラス名は TCPsocket (小文字 s)。その後、それはでした 名前が変更されました TCPSocket (大文字 s)、古い名前で定数が設定されました。これはRuby 1.8.7のケースで、そのバージョンでは TCPsocket そして TCPSocket 同じクラスを参照していますので、等価として比較します。

後で 元の名前が削除されました、残すだけ TCPSocket。これは1.9以降のケースであるため、最近のバージョンでは TCPsocket その結果、 uninitialized constant エラー。

なぜか、私はMatzがもともと使っていたと思う TCPsocket 後でそれを認識した TCPSocket より良い名前でしたが、以前の名前は互換性のためにしばらく利用可能でした。