面试题答案
一键面试// 定义Point2D结构体
struct Point2D {
x: i32,
y: i32,
}
// 定义Point3D结构体
struct Point3D {
x: i32,
y: i32,
z: i32,
}
// 定义From trait实现,将Point2D转换为Point3D
use std::convert::From;
impl From<Point2D> for Point3D {
fn from(p: Point2D) -> Self {
Point3D {
x: p.x,
y: p.y,
z: 0,
}
}
}
可以通过以下方式使用这个转换:
fn main() {
let point_2d = Point2D { x: 1, y: 2 };
let point_3d: Point3D = Point3D::from(point_2d);
println!("Point3D: x = {}, y = {}, z = {}", point_3d.x, point_3d.y, point_3d.z);
}