Rubyの==演算子を再定義する(ネタ)
こんなツイートをみかけた
実はRubyだとこれができてしまう
# coding: utf-8 class String alias_method :eql, :== def ==(other) return true if self.eql("おっぱい") && other.eql("えりっく") eql(other) end end puts "おっぱい" == "えりっく" # => true
ポイント
- Rubyだと==は演算子であり,メソッドでもある."a" == "b"は"a".==("b")とも書ける
- ==メソッドの中で==メソッドを呼び出すと再帰になり場合によっては無限ループになる.そのためModule#alias_methodをつかって再定義前の==メソッドをeqlメソッドとして退避している
最後に
色々とごめんなさいm(_ _)m