SuperAPI AI 工具集

rust-syntax-generics

编程与开发

查看项目

更新于 10-16 09:56

技能介绍

用途:帮助编写和调试 Rust 泛型代码,涵盖泛型函数、结构体、枚举、impl 块,以及 trait 约束和 where 子句的写法。

主要能力:类型参数 <T> 的声明与使用;内联约束与 where 子句;多约束用 + 连接;关联类型约束(Trait<Item = X>,1.79+ 支持 Trait<Item: Bound>);const 泛型(1.51 起支持整数、char、bool);默认泛型类型(如 Vec<T, A = Global>);生命周期参数与类型参数混用;HRTB(for<'a>);Sized 与 ?Sized;PhantomData 标记。

核心规则:泛型在编译期单态化,每个具体实例生成独立机器码,零运行时派发开销,但增加二进制体积和编译时间。运行期多态需显式使用 dyn Trait。

使用方式:按资料示例编写泛型代码;约束可内联或写 where,二者等价,但关联类型约束或多约束时推荐 where。impl 块必须在头部引入泛型参数(impl<T> Foo<T>)。const 泛型稳定版不支持泛型常量表达式(如 [u8; N + 1]),也不支持整数/布尔/char 之外的类型。

适用场景:编译期已知类型集合的多态、性能敏感热路径、编译期定长缓冲区与矩阵等。运行期开放类型集合或异构集合应改用 dyn Trait。

限制:泛型常量表达式、依赖其他 const 参数的默认值在稳定版不可用;?Sized 类型只能置于指针之后;默认泛型类型仅适用于 struct/enum/trait 声明,函数参数不支持。参考资料条目另列出 methods.md、examples.md、anti-patterns.md 及若干 Rust 官方文档链接。