面试题答案
一键面试use std::fmt::Debug;
fn print_type<T: Debug>(value: &T) {
println!("Type: {:?}", std::any::type_name::<T>());
}
之所以需要 T
实现 std::fmt::Debug
特征,是因为在 println!
宏中,{:?}
格式化占位符用于调试输出,需要类型实现 Debug
特征才能将其以调试格式输出。如果类型没有实现 Debug
特征,编译时会报错,确保只有支持调试输出格式的类型才能传递给这个函数,使得函数的行为是可预期和安全的。