// 定义泛型结构体
struct Wrapper<T> {
data: T,
}
// 定义类型别名
type IntWrapper = Wrapper<i32>;
// 定义函数,对IntWrapper中的i32值进行平方操作
fn square_wrapper(wrapper: IntWrapper) -> i32 {
wrapper.data * wrapper.data
}
类型别名简化泛型使用场景的解释
- 减少重复:在没有类型别名时,每次使用
Wrapper<i32>
都需要完整地书写,当这种特定类型的 Wrapper
使用频繁时,代码会变得冗长。类型别名 IntWrapper
就像给 Wrapper<i32>
取了一个简短的名字,使得代码更加简洁。
- 提高可读性:
IntWrapper
这个名字比 Wrapper<i32>
更直观地表达了它是对 i32
类型数据的包装,让代码阅读者能更快理解其用途,尤其是在复杂的代码逻辑中。
- 方便修改:如果未来需要修改包装的
i32
为其他类型(比如 u32
),只需要在定义类型别名的地方修改 Wrapper<i32>
为 Wrapper<u32>
,而不需要在所有使用 IntWrapper
的地方逐个修改。