MST

星途 面试题库

面试题:Rust结构体关联函数的常规应用

请编写一个Rust结构体 `Rectangle`,包含 `width` 和 `height` 两个字段。然后为该结构体实现一个关联函数 `area`,用于计算矩形的面积并返回结果。请解释为什么这里使用关联函数而不是方法更为合适。
36.2万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
struct Rectangle {
    width: u32,
    height: u32,
}

impl Rectangle {
    fn area(&self) -> u32 {
        self.width * self.height
    }
}

这里使用方法更为合适,而不是关联函数。原因如下:

  • 关联函数:关联函数通常用于创建新实例等不需要实例对象的场景,例如 Self::new() 这种构造函数形式,它通过结构体名直接调用,不依赖于结构体实例。
  • 方法:方法需要结构体实例来调用,通过 self 参数来访问结构体的字段。在计算矩形面积时,我们需要访问 Rectangle 实例的 widthheight 字段,因此使用方法更符合逻辑,通过 rectangle.area() 这种调用方式,使得代码更清晰地表达是基于特定矩形实例进行面积计算的操作。