當前位置:編程學習大全網 - 編程語言 - Rust 和 C++ 有哪些優劣

Rust 和 C++ 有哪些優劣

Rust 野心勃勃的想要取代 C++,別人問妳們對 Go 怎麽看的時候他們就直接回答我們的目標是 C++,Go 也是個很好的語言balabala。

GitHub Wiki 頁面上有壹個簡單的比較 Rust for CXX programmers · rust-lang/rust Wiki · GitHub

最直觀的區別就是 Rust 沒有 C++ 的歷史包袱和 C 包袱,所以壹切都能更 clear。還有現代的模塊系統。但如果僅僅如此就僅僅是壹個 Better C++。

但是 Rust 有更精細的編譯時檢查,把 C++ 的 RAII 模式進行嚴格的編譯時檢查,做到了編譯時的隱式確定性析構。同時區分了 mut 和非 mut,保護數據的不變性的同時能更適合並發。將類型安全執行到可以達到的極致。(匿名用戶的答案非常棒!)

並且,雖然 C++ 也在不斷吸取函數式特性,但是 Rust 做得更徹底,模式匹配和代數數據類型結合起來的威力誰用誰知道。錯誤處理就用的這種方法,沒有異常,也不像 Go 有額外的返回值。

對泛型的支持很好,而且泛型出錯了編譯器的錯誤信息也很友好,不像 C++ 的模板編程……實際上所有的錯誤信息都很友好,用人話給妳說清楚了妳遇到了什麽問題,有的時候還能幫妳提供修改建議。

同時有模式匹配樣式的宏,在代碼生成的同時保證安全。這個我是聽 @權循真 (upsuper) 說的……他說聲明被壹堆宏穿插過來穿插過去,他去 IRC 抱怨別人回復說妳去 Servo 組用 Rust 吧,沒有這個問題……

盡管生命期的概念有點費解,但是語言本身的元素並沒有那麽多,不需要學習太多的概念。C++ 中構造函數都有各種細節各種坑我簡直難以想象。只有類似接口的東西,沒有繼承可能對壹些人來說很不習慣——但是妳真的需要繼承嗎?

Rust 的參與者很多都是資深的 C++ 程序員,是壹個很對 C++ 程序員胃口的語言。而且上手也很簡單,常用指針基本都有對應版本。名字空間的 :: 操作符更是熟悉。

  • 上一篇:被譽為“最罕見”的職業:全球僅有6名工作人員,這是壹份什麽工作?
  • 下一篇:求助壹道JAVA編程題:編寫壹個類似記事本的圖形用戶界面程序,要求:
  • copyright 2024編程學習大全網