Rust面试题更新 2026-08-05

请描述 Rust 语言中结构体的定义与使用方法,并解释 impl 关键字在结构体上下文中的功能。

编码实现技术原理Rust

考察说明

考查对 Rust 结构体定义、实例化及方法实现的掌握程度。

回答思路

  1. 【回答框架 1】在 Rust 中,结构体通过 struct 关键字定义,可定义具名字段(如 struct User { name: String, age: u8 })或元组结构体(如 struct Point(i32, i32)),以及单元结构体用于类型标记。
  2. 【回答框架 2】实例化结构体需要为所有字段赋值,使用点语法访问字段;若部分字段需要修改,需将实例声明为 mut。可使用结构体更新语法 .. 从其他实例复制剩余字段。
  3. 【回答框架 3】impl 块用于为结构体定义关联函数(如构造函数)和方法;方法第一个参数可以是 self、&self 或 &mut self,表示调用时的所有权或借用方式。
  4. 【回答框架 4】impl 块还可以定义关联函数(不带 self),如 User::new(...),通过 :: 调用;Rust 允许对同一结构体有多个 impl 块。
  5. 【回答框架 5】方法体内可以访问字段并进行计算,其所有权规则遵循 Rust 的所有权系统,避免悬垂引用和数据竞争。
  6. 【关键点 1】结构体使用 struct 关键字定义,字段默认私有,需通过 pub 或结构体可见性控制。
  7. 【关键点 2】impl 关键字用于实现方法,可定义无 self 的关联函数和带 self 的方法。
  8. 【关键点 3】可变实例需声明 mut 才能修改字段。
  9. 【关键点 4】结构体更新语法 .. 可用于简便复制剩余字段。
  10. 【易错点 1】误认为结构体字段默认是公开的,需注意可见性规则。
  11. 【易错点 2】方法中错误使用 self 而不借用,导致所有权移动。
  12. 【易错点 3】忽略结构体生命周期标注,可能导致引用泄漏或编译错误。