【Ruby3.x】Ractor::MovedObject::equal?()メソッドの使い方
equal?メソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
equal?メソッドは、Ractor::MovedObjectクラスに属し、Ractor間で移動したオブジェクトの同一性を確認するために使用されるメソッドです。
RubyのRactor機能は、複数の処理を安全に並行して実行するための仕組みです。Ractor間でオブジェクトを受け渡す際、オブジェクトは別のRactorへ「移動」することがあります。このとき、元のRactorから移動してしまったオブジェクトを参照しようとすると、Ractor::MovedObjectという特別なインスタンスが返されます。このRactor::MovedObjectは、本来のオブジェクトがもはや現在のRactorから利用できない状態を表すものです。
このequal?メソッドは、二つのRactor::MovedObjectインスタンスを比較し、これらが同じ元のオブジェクトがRactor間を移動した結果として生成されたものであるかを判別します。つまり、2つのRactor::MovedObjectが、かつて同一のオブジェクトであったものが移動したことを示している場合に、真(true)を返します。これにより、Ractorを使った並行処理において、オブジェクトがどこへ移動したか、あるいは移動したオブジェクトの「移動元」が同じであるかを追跡・確認する際に役立ちます。equal?メソッドは、通常のオブジェクトの比較とは異なる、Ractor::MovedObjectに特化した同一性の判断を提供します。
構文(syntax)
1moved_object_instance.equal?(other_object)
引数(parameters)
other
- other: 比較対象のオブジェクト
戻り値(return)
Boolean
二つの Ractor::MovedObject インスタンスが同じオブジェクトを参照している場合に true を、そうでない場合に false を返します。