【Ruby3.x】Struct::==()メソッドの使い方
==メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
==メソッドは、RubyのStructクラスのインスタンス同士が等しいかどうかを比較するメソッドです。Structは、定義された名前を持つフィールド(メンバー)を保持するシンプルなデータ構造を簡単に作成できるクラスです。この==メソッドは、2つのStructオブジェクトが同じ型であり、かつそれらが保持するすべてのメンバーの値が互いに等しい場合にのみ、真(true)を返します。
具体的には、比較対象の双方がStructのインスタンスである必要があります。その上で、両方のStructオブジェクトが同じStructクラスから生成されたものであるか、つまり同じ構造を持つ型であるかが確認されます。この型が異なる場合、たとえメンバーの値が同じであっても、==メソッドは偽(false)を返します。最後に、型が同じである場合に、それぞれのStructオブジェクトが持つ各メンバーの値が、対応する位置で全て等しいかどうかが評価されます。もし一つでも異なるメンバーの値があれば、そのStructオブジェクト同士は等しくないと判断され、偽(false)が返されます。
このメソッドは、Structオブジェクトが表現するデータの意味的な同一性を厳密に判定するために使用されます。
構文(syntax)
1Struct.new(:member1, :member2).new(value1, value2) == Struct.new(:member1, :member2).new(value1, value2)
引数(parameters)
other
- other: 比較対象のStructインスタンス
戻り値(return)
Boolean
Struct クラスの == メソッドは、2つの Struct オブジェクトが等しいかどうかを判定し、真偽値(Boolean)を返します。両方の Struct オブジェクトが同じクラスであり、かつ全てのメンバが同じ値を持っている場合に true を返します。それ以外の場合は false を返します。