我想实现泛型类型结构的特征。特征块内的方法必须返回非泛型类型。我在尝试投射时遇到问题:
struct Rectangle<T> {
x: T,
y: T,
width: T,
height: T,
}
trait Area {
fn area(&self) -> f64;
}
impl<T> Area for Rectangle<T>
where T: std::ops::Mul<Output=T>
{
fn area(&self) -> f64 {
let t_area = self.height * self.width;
let f_area = t_area as f64;
f_area
}
}
fn main() {
let sq = Rectangle { x: 0, y: 0, height: 1, width: 1 };
println!("{}", sq.area());
}
Run Code Online (Sandbox Code Playgroud)
编译器输出是:
struct Rectangle<T> {
x: T,
y: T,
width: T,
height: …Run Code Online (Sandbox Code Playgroud)