MST
星途 面试题库

面试题:Rust中泛型类型约束的基础应用

请编写一个Rust函数,该函数接受两个相同类型的参数并返回它们的和。要求使用泛型,并对泛型类型添加可以进行加法操作的类型约束。请解释你所使用的类型约束的原理。
30.3万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
fn add<T: std::ops::Add<Output = T>>(a: T, b: T) -> T {
    a + b
}

类型约束原理解释

在这个函数中,我们使用了 T: std::ops::Add<Output = T> 这个类型约束。这里 std::ops::Add 是Rust标准库中定义的用于加法操作的trait。T: std::ops::Add 表示类型 T 必须实现 Add trait,这样它才能进行加法运算。而 <Output = T> 则进一步明确了加法操作的返回类型必须和操作数类型 T 一致。这确保了我们在函数 add 中对 ab 进行加法操作是合法的,并且返回值类型也符合预期。