面试题答案
一键面试use std::fmt::Debug;
// 定义泛型枚举类型
enum MaybeResult<T, E> {
Ok(T),
Err(E),
}
// 实现默认值生成函数
fn default_value<T>() -> T
where
T: Default,
{
T::default()
}
// 实现unwrap_or_log函数
fn unwrap_or_log<T, E>(result: MaybeResult<T, E>, log_message: &str) -> T
where
E: Debug,
T: Default,
{
match result {
MaybeResult::Ok(value) => value,
MaybeResult::Err(error) => {
eprintln!("Error: {:?}, Log Message: {}", error, log_message);
default_value()
}
}
}