error[E0609]: no field `x` on type `Point`
--> src/lib.rs:9:31
|
8 | fn distance<Point>(point1: &Point, point2: &Point) -> f64 {
| ----- type parameter 'Point' declared here
9 | let diffX = (*point1).x - (*point2).x;
| ^
错误消息显示
Point
是一个
type parameter
在第8行中声明,该行与原始
指向
之前声明的类型。
所以解决方案是将这个泛型类型更改为另一个名称,或者删除它,因为我在函数体中找不到它的任何用法。
pub struct Point {
pub x: f64,
pub y: f64,
pub z: f64,
}
impl Point {
fn distance(point1: &Point, point2: &Point) -> f64 {
let diffX = (*point1).x - (*point2).x;
let diffY = (*point1).y - (*point2).y;
let diffZ = (*point1).z - (*point2).z;
(diffX * diffX + diffY * diffY + diffZ * diffZ).sqrt()
}
}