Ruby inside: トリプルイコール === の黒魔術(翻訳)

概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Triple Equals Black Magic – Ruby Inside – Medium 原文公開日: 2017/10/16 著者: Brandon Weaver Ruby inside: トリプルイコール===の黒魔術(翻訳) トリプルイコール演算子===は、ほとんどの場合無視されるかcase文の背後でひっそりと使われているだけにとどまっています。===について深掘りしている記事はいろいろありますが、これには一体どんな使いみちがあるのでしょうか? トリプルイコール演算子===とは何か デフォルトでは、ダブルイコール演算子==の単なるエイリアスでしかありません。トリプルイコールは、他のクラスが独自の振る舞いのためにオーバーライドしている部分で輝きを放ちます。いくつか例をご紹介しましょう。 範囲の比較 (1..10) === 1 範囲におけるトリプルイコールは、includes?のエイリアスです。 なお、範囲はそれ自身が黒魔術のかたまりです。これだけで別記事になるトピックなので今後のお楽しみにするとして、ここではほんの一端だけをご紹介します。 ‘a’..’z’ ‘1.0.0’..’2.0.0′ 正規表現の比較 /abc/ === ‘abcdef’ 正規表現におけるトリプルイコールは、matchです。 クラスの比較 String === ‘foo’ クラスにおけるトリプルイコールは、is_a?です。 procの比較 -> a { a > 5 } === 6 procの場合、callを呼びます。この後で面白い部分をご紹介します。 IPAddrの比較 IPAddr.new(‘10.0.0.0/8’) === … Continue reading Ruby inside: トリプルイコール === の黒魔術(翻訳)