如何重载+ =“加上等于”运算符?

时间:2015-01-22 11:11:01

标签: operator-overloading rust

如何使用复合运算符,如" + ="使用自定义类型?

通过实施Add, Sub, etc可以重载一些基本运算符。但似乎没有对+=的任何支持,x += y也不会自动解释为x = x + y(从1.0 alpha版本开始)。

2 个答案:

答案 0 :(得分:8)

现在支持此功能,称为FilterAddAssignSubAssign ...等等。

这是一个基本的例子:

MulAssign

答案 1 :(得分:5)

你现在不能,但它肯定是非常需要的东西。涵盖RFC issue #393

很久以前x += y已被x = x + y实施,但总是存在漏洞。我认为当时这种方法没有任何根本性问题,但现在我认为转向运算符特征采用参数by-value会使得desugaring更难以正常工作。