ruby で 2 つのオブジェクトの配列をマージしようとしています。オブジェクトには 2 つの関連フィールドがあります。idとreach_cost。
結果の配列に一意の ID を含めたいと思います。衝突の場合、各オブジェクトは最小の reach_cost になります。
ランニング;
result = a1 | a2;
さまざまな結果が得られます。 a1の要素がa2の要素よりも優先されるようです。
もちろん、両方の配列を反復してelement.reach_costを手動で比較することもできますが、これは高パフォーマンス環境であり、このメソッドは非常に頻繁に呼び出されます。そのため、| のネイティブ コンポーネントを活用しようとしています。オペレーター。
|を指示することは可能ですか?オペレーターはあるオブジェクトを別のオブジェクトよりも優先しますか? おそらく <=> などをオーバーライドすることで?
| のソース コードを読みました。ドキュメントの演算子ですが、比較を行っているようには見えず、2番目の配列パラメーターよりも最初の配列パラメーターを優先するだけです。