3 回答
TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個(gè)贊
沒(méi)有別的辦法了。使用塊是做到這一點(diǎn)的方法。在Rust 2018(在Rust 1.31中可用)之前,所有借用都是詞法的,也就是說(shuō),它們始終對(duì)應(yīng)于某些詞法范圍。大于單個(gè)語(yǔ)句的唯一作用域是塊的作用域,因此,塊是限制借位作用域的唯一工具。
drop()不能工作的原因有兩個(gè):首先,因?yàn)樗鼘⒁蠓窃~法范圍,而在Rust 2018之前是不支持的;其次,它不能是用于管理借貸的通用工具:例如,它將無(wú)法僅僅因?yàn)椴豢勺円靡驯弧皝G棄”而不能被“丟棄”就結(jié)束了不可變借位Copy。
TA貢獻(xiàn)1809條經(jīng)驗(yàn) 獲得超8個(gè)贊
如果您有一個(gè)不變的引用,則無(wú)法通過(guò)該引用或任何其他方式(unsafe當(dāng)然,除外)來(lái)更改其指向的數(shù)據(jù)。更具體地說(shuō),如果您對(duì)某個(gè)變量具有不變的引用,則既不能對(duì)同一變量或其內(nèi)部進(jìn)行可變引用,也不能直接修改此變量,即使該變量存儲(chǔ)在mut插槽中也是如此。這是Rust所有權(quán)/借用概念的基石之一,這就是使不可變引用的別名安全的原因。另請(qǐng)注意,可變引用不可復(fù)制。
TA貢獻(xiàn)1834條經(jīng)驗(yàn) 獲得超8個(gè)贊
我想我現(xiàn)在明白了。絕對(duì)不會(huì)復(fù)制mut ref,因?yàn)槿绻@樣的話,兩個(gè)工作人員可能會(huì)改變其狀態(tài)。immu ref會(huì)將引用復(fù)制到基礎(chǔ)數(shù)據(jù),以便許多工作人員可以讀取它們,但是由于不可更改性,因此永遠(yuǎn)不要更改它們。
- 3 回答
- 0 關(guān)注
- 512 瀏覽
添加回答
舉報(bào)
