// 定义两个示例结构体
struct StructA {
field_a: i32,
}
struct StructB {
field_b: i32,
}
// 定义组合后的结构体
struct CombinedStruct {
field_a: i32,
field_b: i32,
}
// 泛型函数
fn combine_structs<T, U>(a: &T, b: &U) -> CombinedStruct
where
T: Copy,
U: Copy,
{
CombinedStruct {
field_a: a.field_a,
field_b: b.field_b,
}
}
应用场景
- 数据整合:在处理来自不同数据源但具有部分相关数据的结构体时,可使用此函数将数据整合到一个结构体中。例如,从数据库获取用户基本信息(
StructA
)和用户统计信息(StructB
),然后整合为一个包含完整用户信息的结构体。
- 配置合并:不同模块可能有各自的配置结构体,在某些情况下需要将这些配置合并。
优势
- 代码复用:通过泛型函数,可以适用于不同类型但满足相同
Copy
trait约束的结构体,避免为每种类型组合编写重复代码。
- 类型安全:Rust的类型系统确保了在编译时就能发现类型不匹配等错误,提高了程序的稳定性。
- 清晰的设计:函数的设计明确了输入和输出的关系,使得代码逻辑更加清晰易懂。