NLL 導致的非直覺的作用域擴大
1. NLL 完全無視詞法作用域
1.1. 是否可以認為 NLL 在fb.set(&b);
處縮短了fb
的起始生存期以配合b
?
1.2. 應(yīng)該認為 NLL 縮短了fb
還是延長了b
的生存期?
struct MyCell
2. 強制延長外部變量生存期得到符合直覺的編譯失敗
struct MyCell
3.Drop
導致隱式生存期延長而編譯失敗
主代碼與 1 完全相同, 與 1 相比僅多一個空Drop
, 而編譯失敗原因同 2
struct MyCell
4. 編譯失敗 循環(huán)使得fb
生存期不能縮短
有可能rust升級使其可通過編譯
struct MyCell
5. 編譯成功 基本等同于 4
NLL 過于智能的消除了loop
struct MyCell
審核編輯:湯梓紅
-
代碼
+關(guān)注
關(guān)注
30文章
4834瀏覽量
69117 -
編譯
+關(guān)注
關(guān)注
0文章
661瀏覽量
33066
原文標題:NLL 導致的非直覺的作用域擴大
文章出處:【微信號:Rust語言中文社區(qū),微信公眾號:Rust語言中文社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
介紹一些與變量相關(guān)的存儲屬性與作用域
Java中bean的作用域
![Java中bean的<b class='flag-5'>作用</b><b class='flag-5'>域</b>](https://file.elecfans.com/web2/M00/49/DB/pYYBAGKhvGuAEjgUAAAcyznjVo8310.png)
基于修正的直覺模糊集成算子
軟直覺multiplicative集
Javascript作用域-前端開發(fā)必知的技巧
程度粗糙直覺模糊集模型研究分析綜述
解讀Spring 的內(nèi)置作用域及開發(fā)應(yīng)用
![解讀Spring 的內(nèi)置<b class='flag-5'>作用</b><b class='flag-5'>域</b>及開發(fā)應(yīng)用](https://file1.elecfans.com/web2/M00/8B/D5/wKgZomSfo-yAT_XZAAArxLAPxBg717.png)
評論