MST

星途 面试题库

面试题:Rust函数定义中泛型与引用的基础应用

请编写一个Rust函数,该函数接受两个相同类型的引用参数,类型为泛型,返回这两个参数相加的结果(假设类型实现了加法操作)。并解释函数定义中泛型和引用的作用。
23.4万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
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 作为参数类型,避免了在函数调用时对参数的所有权转移或复制。这在处理大对象时可以提高效率,因为不需要进行昂贵的复制操作。同时,引用也允许函数操作调用者作用域内的数据,而不是创建数据的副本。只要被引用的数据生命周期足够长,函数就能安全地使用这些数据。