开发者社区 问答 正文

以下Rust代码示例为什么无法编译?

以下Rust代码示例为什么无法编译?

rust
fn foo() -> &[u8] {  
let reader = FileReader::next(path);  
let line = reader.next_line();  
return line; // won't compile  
}

展开
收起
夹心789 2024-06-06 18:40:22 66 分享 版权
1 条回答
写回答
取消 提交回答
  • 这段Rust代码无法编译,因为line变量引用的是reader对象内部维护的buffer,而reader在函数结束时会被销毁,这会导致line引用的数据无效。由于line的生命周期超出了reader的生命周期,违反了Rust的借用规则。

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