3 回答

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個(gè)贊
沒有別的辦法了。使用塊是做到這一點(diǎn)的方法。在Rust 2018(在Rust 1.31中可用)之前,所有借用都是詞法的,也就是說,它們始終對應(yīng)于某些詞法范圍。大于單個(gè)語句的唯一作用域是塊的作用域,因此,塊是限制借位作用域的唯一工具。
drop()
不能工作的原因有兩個(gè):首先,因?yàn)樗鼘⒁蠓窃~法范圍,而在Rust 2018之前是不支持的;其次,它不能是用于管理借貸的通用工具:例如,它將無法僅僅因?yàn)椴豢勺円靡驯弧皝G棄”而不能被“丟棄”就結(jié)束了不可變借位Copy
。

TA貢獻(xiàn)1809條經(jīng)驗(yàn) 獲得超8個(gè)贊
如果您有一個(gè)不變的引用,則無法通過該引用或任何其他方式(unsafe
當(dāng)然,除外)來更改其指向的數(shù)據(jù)。更具體地說,如果您對某個(gè)變量具有不變的引用,則既不能對同一變量或其內(nèi)部進(jìn)行可變引用,也不能直接修改此變量,即使該變量存儲(chǔ)在mut
插槽中也是如此。這是Rust所有權(quán)/借用概念的基石之一,這就是使不可變引用的別名安全的原因。另請注意,可變引用不可復(fù)制。

TA貢獻(xiàn)1834條經(jīng)驗(yàn) 獲得超8個(gè)贊
我想我現(xiàn)在明白了。絕對不會(huì)復(fù)制mut ref,因?yàn)槿绻@樣的話,兩個(gè)工作人員可能會(huì)改變其狀態(tài)。immu ref會(huì)將引用復(fù)制到基礎(chǔ)數(shù)據(jù),以便許多工作人員可以讀取它們,但是由于不可更改性,因此永遠(yuǎn)不要更改它們。
- 3 回答
- 0 關(guān)注
- 504 瀏覽
添加回答
舉報(bào)