如果不熟悉它的機制,很可能會寫得非常啰嗦。
舉個例子Mutex<RefCell<Rc>>> 這種類型多了會讓人崩潰。
c++很多東西被簡化了, 比如拷貝構造函數變成了Copy trait,移動構造函數自帶。 RAII被rust強推(連lock都是).. 想要用內存不安全的操作需要加unsafe。c++那幾個智能指針變成rust的基本類型了。所有的變量都會有壹個所有權,不用智能指針的話,只能用引用(rust叫借用),增加了很多限制。指針什麽的很難看到了(寫起來啰嗦)
惡心的生命周期標註,沒有ide很容易被這個煩死。
沒了容器類, 這個習慣c++的要吐槽。
加了很多函數編程的概念。 比如: arr.to_iter().filter(|x| x.age > 20), 還有模式匹配,高階枚舉,但總體沒有scala ocaml這類強大。
完全編譯時, 極少運行時(有類似c++的typeid),要想用類似java的反射機制就不要想了。 泛型和c++壹樣, 基本就是壹個文本替換(宏)
常用的功能, 如多線程,日誌,文件,網絡等都比c++ std和boost好用很多, 但是功能也沒有那麽強大, 不少功能和c壹樣直接在系統內核上封裝了壹下,寫起來跟c有點像。
完全拋棄面向對象,和go很像,全是struct。這點真心比c++半吊子面向對象強。
比c++方便最多的地方是有壹個模塊管理系統,項目的結構都是訂死的(和sbt有點像),靈活性不強。
目前社區不完善,基本上找不到什麽有用的論壇。debug比較痛苦。
總體覺得是c++的閹割版,寫起來很難像c++壹樣放得開。小項目會快那麽壹點,畢竟不用寫makefile。