MST

星途 面试题库

面试题:Rust中trait bound的基础应用

假设有一个函数`print_number`,它需要接受实现了`std::fmt::Display` trait的类型作为参数,并打印这个参数的值。请用Rust实现这个函数,同时说明这里使用的trait bound是什么,以及它的作用。
13.5万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
fn print_number<T: std::fmt::Display>(num: T) {
    println!("{}", num);
}

这里使用的trait bound是 T: std::fmt::Display。它的作用是限制函数 print_number 所接受的参数类型 T 必须实现了 std::fmt::Display trait 。这样在函数体内部才能使用 println!("{}", num) 这种格式化输出的方式,因为 println! 宏在使用 {} 占位符进行格式化输出时,要求被输出的类型实现 std::fmt::Display trait 。如果没有这个trait bound限制,编译器将无法确定 num 可以使用这种格式化输出方式,会导致编译错误。