比較されているということを理解しておいてください。falseになるんです。うまく説明できているかどうかわかりませんが、参考になれば幸いです。P.S.僕も今回初めて理屈をじっくり調べてみました。endみたいな書き方はイディオムとして当たり前のように使っているので、わざわざ理屈は考えていませんでした。僕と同じく大半の人は「それはそういうふうに動くようになっているから」という理解で止まっているんじゃないかな~と思ったりします。その2こういったRubyの言語仕様を疑問に思った場合は、以下の書籍を読んでみると詳しく説明されていたりします。Ruby書籍内のバージョンは1.9止まりなので最新のRubyの言語仕様は一部カバーできていませんが、それでも大半の内容は今でも有効なので、リファレンスとして一冊持っておくことをオススメします。trueそのため、次のように書き換えると意図したように動くと思います。|1caseは===で比較されるので云々は他の回答者がやっていますので別のことを補足します。endendRubyにおいて以下の二つは全く同じ式です。objが真になるのはobjがクラス<クラス>またはその派生クラスのインスタンスであるときである、ということです。ように書き換えが可能です。endendのようにです。デフォルトのメソッドが呼ばれるようにもできます。Regexpだ!などということもできます。組み込みクラスにメソッドを追加することはあまりよくない作法であるので、実際にやるときは慎重に行なってください。Objectクラスにメソッドを追加するのは影響範囲がでかいですし、まかり間違って既存のメソッドを上書きしてしまうととても不可解な動作をすることになるでしょう。(大事なことなので2度いいました)。自分で定義するクラスであればその恐れはありません。(議論はあると思います)。いうか多態ってそもそもこういうことをやりたいがために存在しているのでしょうし。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。