Rust 类型系统相关常见术语
Rust 类型系统相关常见术语及解释如下:
1. 类型注解(Type Annotation)
定义:在代码中显式写出变量、参数或返回值的类型。
示例:let x: i32 = 5;
2. 类型推导(Type Inference)
定义:编译器根据上下文自动判断变量或表达式的类型,无需显式注解。
示例:let x = 5;
(自动推导为 i32
)
3. 泛型(Generic)
定义:允许类型参数化,使代码可复用于多种类型。
示例:fn foo<T>(x: T) { ... }
4. 泛型约束(Generic Bound / Trait Bound)
定义:对泛型参数加上 trait 限制,要求类型实现某些 trait。
示例:fn foo<T: Debug>(x: T) { ... }
5. Trait(特征)
定义:类似于接口,定义类型必须实现的方法集合。
示例:trait MyTrait { fn do_something(&self); }
6. 实现(Impl)
定义:为类型或 trait 提供具体方法实现。
示例:impl MyTrait for MyType { ... }
7. 生命周期(Lifetime)
定义:描述引用的作用域,保证内存安全。
示例:fn foo<'a>(x: &'a str) { ... }
8. 动态分发(Dynamic Dispatch)
定义:运行时根据类型调用方法,常见于 trait 对象。
示例:Box<dyn MyTrait>
9. 静态分发(Static Dispatch)
定义:编译期确定类型和方法调用,常见于泛型。
示例:fn foo<T: MyTrait>(x: T) { ... }
10. 类型别名(Type Alias)
定义:为复杂类型定义简短别名。
示例:type MyInt = i32;
11. Associated Type(关联类型)
定义:trait 内定义的类型占位符,由实现者指定具体类型。
示例:trait Iterator { type Item; }
12. Newtype(新类型模式)
定义:用 tuple struct 包裹现有类型,创建新的类型。
示例:struct MyInt(i32);