开发者社区 问答 正文

以下Rust代码示例为什么会导致编译错误?

以下Rust代码示例为什么会导致编译错误?

rust
let s: &String;  
{  
let x = String::new("abc");  
s = &x;  
}  
println!("s is {}", s); // error

展开
收起
夹心789 2024-06-06 18:40:23 78 分享 版权
1 条回答
写回答
取消 提交回答
  • 这段Rust代码会导致编译错误,因为变量s的生命周期超出了变量x的生命周期。在{}块结束时,x被销毁,但s仍然持有对x的引用,尝试在x被销毁后访问它违反了Rust的借用规则。

    2024-06-06 19:06:34
    赞同 展开评论
问答分类:
问答地址: