演算子のオーバーロード
Rustでは、多くの演算子はトレイトによってオーバーロードすることができます。つまり、一部の演算子は引数となる値の型に応じて異なる役割を果たすことができるということです。これが可能なのは、演算子が実際にはメソッド呼び出しの糖衣構文にすぎないからです。例えばa + b
における+
演算子はadd
メソッドを(a.add(b)
の形で)呼び出します。このadd
メソッドはAdd
トレイトの一部です。それ故、+
はAdd
トレイトを実装している全ての型に対して有効なのです。
Add
などの、演算子をオーバーロードするトレイトの一覧はcore::ops
にあります。