请描述 Rust 泛型的概念,并说明如何声明泛型函数以及泛型结构体?
考察说明
考查对 Rust 泛型的基本概念和定义语法的掌握。
回答思路
- 【回答框架 1】泛型允许在定义函数、结构体等时使用类型参数,以编写可适用于多种类型的代码,同时保持类型安全。
- 【回答框架 2】定义泛型函数时,在函数名后使用尖括号声明类型参数,如 fn foo<T>(x: T) {},可对 T 添加 trait 约束。
- 【回答框架 3】定义泛型结构体时,在结构体名后声明类型参数,如 struct Foo<T> { value: T },可用于字段类型。
- 【回答框架 4】在实现泛型结构体时,impl<T> 块中可以为特定类型或满足约束的类型提供方法。
- 【关键点 1】泛型通过类型参数实现代码复用和类型安全。
- 【关键点 2】泛型函数和结构体的类型参数用尖括号声明。
- 【关键点 3】泛型结构体定义后,使用具体类型实例化,如 Foo<i32>。
- 【易错点 1】漏写 impl 块中的类型参数声明。
- 【易错点 2】未对类型参数添加必要的 trait 约束导致编译错误。