MST
星途 面试题库

面试题:Rust函数返回复杂类型的声明

定义一个结构体`Point`,包含`x`和`y`两个`f64`类型的字段。编写一个函数,接收两个`Point`结构体实例作为参数,返回一个新的`Point`实例,其`x`和`y`值分别为两个输入`Point`对应字段的平均值。要求准确声明函数的返回值类型,并实现该函数及调用。
44.9万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
// 定义Point结构体
struct Point {
    x: f64,
    y: f64,
}

// 定义函数计算两个Point实例对应字段的平均值
fn average_points(p1: Point, p2: Point) -> Point {
    Point {
        x: (p1.x + p2.x) / 2.0,
        y: (p1.y + p2.y) / 2.0,
    }
}

fn main() {
    let p1 = Point { x: 1.0, y: 2.0 };
    let p2 = Point { x: 3.0, y: 4.0 };
    let result = average_points(p1, p2);
    println!("Average point: x = {}, y = {}", result.x, result.y);
}

在上述代码中:

  1. 首先定义了 Point 结构体,包含 xy 两个 f64 类型的字段。
  2. 接着定义了 average_points 函数,接收两个 Point 结构体实例作为参数,并返回一个新的 Point 实例,新实例的 xy 分别是输入两个 Point 对应字段的平均值。
  3. main 函数中创建了两个 Point 实例 p1p2,调用 average_points 函数并输出结果。