MST

星途 面试题库

面试题:Rust泛型约束的基础实现

请用Rust实现一个泛型函数,该函数接受两个相同类型的参数,并在类型实现了`std::fmt::Display` trait时,将两个参数以相加的形式(如果类型支持加法)格式化输出。例如,对于整数类型就是数值相加,对于字符串类型就是字符串拼接。请展示如何定义泛型约束以满足该需求。
27.0万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
fn add_and_display<T: std::fmt::Display + std::ops::Add<Output = T>>(a: T, b: T) {
    let result = a + b;
    println!("{} + {} = {}", a, b, result);
}

你可以这样调用这个函数:

fn main() {
    add_and_display(5, 3);
    add_and_display("Hello, ".to_string(), "world!".to_string());
}