有没有更有效的方法来做到这一点:
let s_opt = Some("Abc".to_string());
let s2 = &s_opt.clone().unwrap_or("".to_string());
println!("s_opt = {s_opt:?}, s2 = {s2:?}");
如果我省略 clone()
调用,就会出现问题,因为 unwrap_or
移动 包装的 String
值。
最佳答案
我想我找到了我正在寻找的东西:
let s2 = s_opt.as_deref().unwrap_or("");
它有点短,并且避免克隆原始 String
值。
关于rust - 从 Option<String> 转换为非空 &str 不移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70953809/