面试题答案
一键面试fn fetch_user_data() -> Option<(String, i32)> {
// 模拟获取数据,这里返回None作为示例
None
}
fn main() {
match fetch_user_data() {
Some((username, age)) => {
println!("Username: {}, Age: {}", username, age);
}
None => {
println!("Failed to fetch user data");
}
}
}
上述代码通过match
表达式对fetch_user_data
的返回值进行处理,成功时打印用户名和年龄,失败时打印错误信息。这种方式很好地处理了所有权转移和借用问题,username
在Some
分支内获取所有权并使用,而整个过程中没有产生悬垂引用等借用相关问题。