NLL 导致的非直觉的作用域扩大
1. NLL 完全无视词法作用域
1.1. 是否可以认为 NLL 在fb.set(&b);
处缩短了fb
的起始生存期以配合b
?
1.2. 应该认为 NLL 缩短了fb
还是延长了b
的生存期?
struct MyCell
2. 强制延长外部变量生存期得到符合直觉的编译失败
struct MyCell
3.Drop
导致隐式生存期延长而编译失败
主代码与 1 完全相同, 与 1 相比仅多一个空Drop
, 而编译失败原因同 2
struct MyCell
4. 编译失败 循环使得fb
生存期不能缩短
有可能rust升级使其可通过编译
struct MyCell
5. 编译成功 基本等同于 4
NLL 过于智能的消除了loop
struct MyCell
审核编辑:汤梓红
-
代码
+关注
关注
30文章
4906浏览量
71033 -
编译
+关注
关注
0文章
680浏览量
34242
原文标题:NLL 导致的非直觉的作用域扩大
文章出处:【微信号:Rust语言中文社区,微信公众号:Rust语言中文社区】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
介绍一些与变量相关的存储属性与作用域
Java中bean的作用域

基于修正的直觉模糊集成算子
软直觉multiplicative集
程度粗糙直觉模糊集模型研究分析综述
解读Spring 的内置作用域及开发应用

评论