我做了两个元素的Vector结构,我想重载+运算符。
我使所有函数和方法都采用引用而不是值,并且我希望+运算符以相同的方式工作。
impl Add for Vector {
fn add(&self, other: &Vector) -> Vector {
Vector {
x: self.x + other.x,
y: self.y + other.y,
}
}
}
根据我尝试的变化,我会遇到生命周期问题或类型不匹配。具体来说,该&self参数似乎没有被视为正确的类型。
我已经看到了模板参数的例子上impl,以及Add,但他们只是导致不同的错误。
我发现如何为不同的RHS类型和返回值重载运算符?但是即使我将a use std::ops::Mul;放在最前面,答案中的代码也无法正常工作。
我每晚使用rustc 1.0.0(ed530d7a3 2015-01-16 22:41:16 +0000)
我不会接受“您只有两个字段,为什么要使用引用”作为答案;如果我想要100个元素的结构怎么办?我将接受一个答案,该答案表明即使是大型结构,如果是这种情况,我也应该按值传递(尽管我不这么认为。)我有兴趣了解结构大小的良好经验法则并传递值与结构,但这不是当前的问题。
慕侠2389804
胡说叔叔