为什么我不能只&self
在Add
特征中使用:
pub trait Add<RHS = Self> {
type Output;
fn add(self, rhs: RHS) -> Self::Output;
}
这样我就不必担心使用+
运算符后结构会移动。这对我来说通常不是问题,因为我使用#[derive(Debug, Copy, Clone)]
但我仍然想知道为什么。
为什么我不能只&self
在Add
特征中使用:
pub trait Add<RHS = Self> {
type Output;
fn add(self, rhs: RHS) -> Self::Output;
}
这样我就不必担心使用+
运算符后结构会移动。这对我来说通常不是问题,因为我使用#[derive(Debug, Copy, Clone)]
但我仍然想知道为什么。