第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在Rust中終止可變借貸有哪些選擇?

在Rust中終止可變借貸有哪些選擇?

Git
慕標(biāo)琳琳 2019-11-21 09:36:51
我正在努力與借位檢查器-不知道。當(dāng)我通過添加一個(gè)塊找到解決方案時(shí),我很好奇是否還有其他方法來結(jié)束可變借用,以便下一條語句以后可以訪問綁定。這是我到目前為止所做的:let mut canvas: Canvas = Canvas {    width: 5,    height: 5,    array: vec!['x'; 5*5],};{    let mut renderer: CanvasRenderer = CanvasRenderer::new(&mut canvas);    renderer.render_point('x', 3, 3);}println!("The Value in the array is: {}", canvas.array[9]);我在CanvasRenderer對象的綁定周圍包裹了一個(gè)塊,并在對畫布進(jìn)行了突變并且作用域結(jié)束之后,可以讀取CanvasRenderer模具和我的可變借canvas位,或者進(jìn)行讀取。這可行-但現(xiàn)在我想看看其他解決方案!我聽說過,drop(stuff)但是沒有按我認(rèn)為的那樣工作。
查看完整描述

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。


查看完整回答
反對 回復(fù) 2019-11-21
?
海綿寶寶撒

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ù)制。

查看完整回答
反對 回復(fù) 2019-11-21
?
MMMHUHU

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)不要更改它們。

查看完整回答
反對 回復(fù) 2019-11-21
  • 3 回答
  • 0 關(guān)注
  • 504 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號