1樓:
鏈結不能不放啊 https://
blog.rust-lang.org/2018
/05/10/Rust-1.26.html
例子基本都有了。
我認為 impl trait 的主要用途以及和 trait object(Box 或 &Foo)的主要區別在於函式簽名的返回型別:
比如典型的返回乙個 closure:
// before
fnfoo
()-> Box
i32) -> i32 >// after fnfoo ()-> implFn( i32) -> i32 如果乙個函式只可能 return 一種 implementation ,那就用 impl trait ,因為: 使用「靜態派發」,因為具體型別在編譯期就知道,用不著動態派發 返回型別沒有 box ,方便易用,還沒有 allocation 方便做優化,比如 inline 但如果可能 return 多種 implementations ,那就只能用「動態派發」的 trait object 了,使用虛表在執行時確定函式指標。 至於函式引數上的區別,在於: Oh, and one last thing: to make the syntax a bit more symmetrical, you can useimpl Traitin argument position too. That is: // before fnfoo >(x: T){ // after fnfoo (x: impl Trait){ which can look a bit nicer for short signatures. 讓函式簽名更短了233。 2樓:juu wiio Add RFC undo-universal-impl-trait. by phaazon · Pull Request #2444 · rust-lang/rfcs 雖然看起來很搞,反正我投贊成票 希望出個1.26.1就把這個移除掉,雖然不太可能已經被強行關閉了 3樓: 大部分是語法糖,而且還都不「穩」,比如說那個列表匹配: letx=[ T,T]; let[a, b]=x ;這個算是 Rust 的基本操作了,但是現在需要加上 -Z borrowck=mir才行 對impl Trait社群總結的小筆記 Notes on impl Trait r/rust 真正值得期待的是 Rust 下乙個 nightly,新一代 borrow checker,比nll效能還優秀,初期測試的編譯速度提公升明顯(注意圖中的nll)主體基本完成,正在優化檢查過程和逐步引入 rustc,應該會在乙個月以內跟大家見面 4樓:FGO 輝夜 基本上來說大都是語法糖,寫上去很不錯,詳情看 @shingtaklam1324 impl Trait這個我在嘗試能不能繞過FnBox來寫高等函式……其實也還是FnOnce的問題,FnMut和Fn少了Box變成了編譯期確定了Size也不錯 5樓:F001 我同意 @shingtaklam1324 大部分的總結,只是對 impl Trait 的說法有點異議。 fnid_impl (a: impl Bar) -> impl Barfn id_gen >(a: T )-> T fnid_where )-> T where T: Bar 這三種寫法不同。第一種和後面兩種意義不一樣。示例如下: usestd::string::ToString;fnid_impl (arg: impl ToString )-> impl ToString fnmain()" ,s.to_string ()); }這麼呼叫是可以的。因為函式簽名並沒有約束引數裡面的 impl ToString 和返回型別 impl ToString 是同乙個型別。 // f 是跟 f1 一樣的,跟 f2 不一樣fnf(arg1: impl Trait ,arg2: impl Trait){} fnf1 T2>(arg1: T1 ,arg2: T2){} fnf2 ,arg2: T){} 這種黑點明顯是直擊白左靈魂的,聖母最受不了這個,雖然他們本來就支援桑德斯反希拉莉 但是你國網際網路上某些整天批判別人聖母的的川普粉也跟著黑,就是最後一層臉皮都不要了,這屆看日劇學法律的中華田園右不行。 錢晉翔 她早年是一名律師,在律師界赫赫有名,她年輕時候擁有無與倫比的美貌,後來,她嫁給了乙個足以改... Jason5Lee 找到乙個trade off pubstruct RowIter a impl a Iterator forRowIter a Nugine 沒有什麼所有權問題是 Rc 不能解決的,如果有,那就再套一層。開完玩笑,讓我們看看為什麼 Safe Rust 中無法實現題目中的邏輯。迭代器... Xizhi Zhu 說句實話,如果你不支援你所居住國家的商品和勞工,除非你已經準備好移民,否則到最後倒霉的就是你自己。你自己想想,要是什麼東西都是買外國的,雇人也先考慮老外。到最後,你自己的國家,會有多少人失業下崗?下崗怎麼辦?這些人如何生存?到最後錢還不是從你的稅收裡面出,大家一起倒霉,還不如一開...如何評價川普給希拉莉新取的名字, Heartless Hillary
rust中如何實現返回可變引用的迭代器?
如何評價川普在29日提出的新口號 Buy American and Hire American ?