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

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

“ dyn”在類型中是什么意思?

“ dyn”在類型中是什么意思?

SMILET 2019-10-12 10:28:42
我最近看過使用dyn關(guān)鍵字的代碼:fn foo(arg: &dyn Display) {}fn bar() -> Box<dyn Display> {}這個(gè)語法是什么意思?
查看完整描述

1 回答

?
POPMUISE

TA貢獻(xiàn)1765條經(jīng)驗(yàn) 獲得超5個(gè)贊

TL; DR:這是用于指定特征對(duì)象類型的語法,出于清晰起見,應(yīng)首選該語法。


從Rust 1.0開始,特質(zhì)帶來雙重生活。聲明了特征后,就可以將其用作特征或類型:


// As a trait

impl MyTrait for SomeType {}


// As a type!

impl MyTrait {}

impl AnotherTrait for MyTrait {}

可以想象,這種雙重含義可能會(huì)引起一些混亂。另外,由于MyTrait類型是未調(diào)整大小/動(dòng)態(tài)大小的類型,因此這可能使人們暴露于非常復(fù)雜的錯(cuò)誤消息中。


為了改善此問題,RFC 2113引入了dyn語法。從Rust 1.27開始可以使用以下語法:


use std::{fmt::Display, sync::Arc};


fn main() {

    let display_ref: &dyn Display = &42;

    let display_box: Box<dyn Display> = Box::new(42);

    let display_arc: Arc<dyn Display> = Arc::new(42);

}

這個(gè)新關(guān)鍵字與impl Trait語法相似,并致力于使特征對(duì)象的類型與“裸”特征語法更加明顯。


查看完整回答
反對(duì) 回復(fù) 2019-10-12
  • 1 回答
  • 0 關(guān)注
  • 599 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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