個人のビジョンと経験
私は個人的に、異なるタイプ間の比較に眉をひそめません。コードの可読性が向上する可能性があるため、私はそれをお勧めします。あなたがしていることをより論理的に見えるようにします。基本的な数値型、おそらく文字列と文字以外では、型内の論理的な比較を行うのは難しいと思います。また、多くの人に会ったことを覚えていません。ただし、このように使用される算術演算子はたくさんあります。
それらの使用方法
あなたがしていることに注意する必要があります。理由があってほとんど使われていません。2 つの異なるタイプを比較する関数を提供する場合、結果は論理的であり、ユーザーが直感的に期待するものでなければなりません。また、適切なドキュメントを作成することも望ましいです。Mark Ransom も言っていますが、ユーザーが双方向で比較できれば良いのです。演算子を使用した比較が十分に明確ではないと思われる場合は、名前付き関数の使用を検討する必要があります。演算子が複数の意味を持つ場合、これは非常に優れたソリューションでもあります。
何がうまくいかないのか
あなたが書いたものでユーザーが何をするかを完全に制御することはできません。tletnes は、2 つの整数を比較する良い例を示しましたが、結果には意味がありません。これに反して、2 つの異なるタイプの比較は非常に正しい場合があります。秒を表す float と整数はよく比較できます。
算術演算子
論理の次に、算術演算子を使用した型内の例を示したいと思います。算術演算子は、型内の使用法について話すときの論理演算子によく似ています。
2 次元のベクトルと正方形の演算子 + があるとします。これは何をしますか?ユーザーはそれが正方形をスケーリングすると思うかもしれませんが、別のユーザーはそれが翻訳されると確信しています! この種の問題は、ユーザーにとって非常に苛立たしいものになる可能性があります。適切なドキュメントを提供することでこれを解決できますが、私が個人的に好むのは、Translate などの具体的に名前が付けられた関数です。
結論
型内論理演算子は便利で、きれいなコードを作成できますが、使い方を誤るとすべてが複雑になります。