面试题答案
一键面试fn add<T: std::ops::Add<Output = T>>(a: &T, b: &T) -> T {
a + b
}
- 泛型
T
的作用:- 泛型
T
使函数能够适用于多种不同类型,而不是针对某一种具体类型编写函数。例如,既可以是i32
类型,也可以是f64
类型等。只要这些类型实现了Add
特质(std::ops::Add
),函数就能对它们进行相加操作。这大大提高了函数的复用性,避免了为每种类型都编写一个单独的add
函数。
- 泛型
- 引用
&T
的作用:- 使用引用
&T
作为参数类型,避免了在函数调用时对参数的所有权转移或复制。这在处理大对象时可以提高效率,因为不需要进行昂贵的复制操作。同时,引用也允许函数操作调用者作用域内的数据,而不是创建数据的副本。只要被引用的数据生命周期足够长,函数就能安全地使用这些数据。
- 使用引用