面试题答案
一键面试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
可以使用这种格式化输出方式,会导致编译错误。