开发者社区> 问答> 正文

以下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 32 0
1 条回答
写回答
取消 提交回答
  • 这段Rust代码无法编译,因为line变量引用的是reader对象内部维护的buffer,而reader在函数结束时会被销毁,这会导致line引用的数据无效。由于line的生命周期超出了reader的生命周期,违反了Rust的借用规则。

    2024-06-06 19:06:43
    赞同 1 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载