0
0

More than 1 year has passed since last update.

#Ruby で自前クラスのインスタンス同士で同値性チェックを実装するには == ===イコールメソッドを定義すれば良いかね?

Last updated at Posted at 2020-03-10
  • 強制的に同値の評価を真にしてしまう場合。別のクラスのインスタンスだろうとなんだろうと常に「同値だ!」と言い張るクラスを作ってみる。実用的には特に意味なし。
  • Aのインスタンスが同値評価をしようとすると、常に true を返す。(特に意味はありません)
  • 有意な同値評価を実装してみてください。
class A
  def ==(instance)
    true
  end

  def ===(instance)
    true
  end
end

class B
end



A.new == B.new
# => true

A.new === B.new
# => true

B.new == A.new
# => false

B.new === A.new
# => false

== と === だけ再定義可能みたいだ

Rubyにおける==,===,eql?,equal?の違い - ぬいぐるみライフ?

Original by Github issue

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

Twitter

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0