面试题答案
一键面试fn add<T: std::ops::Add<Output = T>>(a: T, b: T) -> T {
a + b
}
泛型实现类型安全的原因
- 编译时检查:泛型在编译时就确定具体类型,编译器能在此时对类型相关的操作进行全面检查。例如,若传递给
add
函数的类型不实现Add
特质,编译器会报错,确保了类型的正确性。 - 避免运行时类型错误:不像动态类型语言在运行时才确定类型,可能会因类型不匹配导致运行时错误。泛型在编译阶段就排除了许多潜在的类型错误,使得程序在运行时更加稳定和安全。
- 代码复用与类型安全兼得:通过泛型,我们可以编写一份通用的代码来处理多种类型,而无需为每种类型重复编写类似的函数。同时,编译器确保在使用这些通用代码时,类型的使用是安全且正确的。