如大家所了解的,Rust是一種由Mozilla開發的系統編程語言,專注于內存安全、并發性和高性能,旨在替代C/C++等傳統系統編程語言。
Rust 有著非常優秀的特性,例如:
可重用模塊
內存安全和保證(安全的操作與不安全的操作)
不可恢復和可恢復的錯誤處理特性
并發性支持
復雜的數據類型(稱為集合)
如果與我們比較熟悉的 C++ 相比的話,Rust 可以比較的地方太多了,這里我僅僅舉一個比較簡單的部分(模塊引入)來看,在 C++ 中我們可能會需要以下頭文件:
#include <iostream>
#include <fstream>
#include <vector>
#include <iterator>
#include <string>
#include <algorithm>
#include <bitset>
而如果要在 Rust 中完成的話,我們只需要:
use std::io::prelude::*;
use std::{fs, io, env, process};
Rust 提供大量默認的標準庫。上面的代碼中,就第一行,就 use 了一堆模塊,這一點和 Python 的?import xxx
?比較相似,此外:
C++ 還是那個老問題:慣用法。析構函數、拷貝構造函數。寫對了沒有。單線程下是對的,也許多線程就錯了。要知道你可能從前寫好了基礎庫,沒有完整測試它在高并發下的表現,繼續用可能就出錯了(數據錯誤、內存訪問錯誤)。Rust 呢?Rust 有一套基礎設施(borrow checker), 從語義上檢查了跨線程共享。
對 Rust 來說,編譯器保證指出你的錯誤,對 C++ 來說,編譯器沒有這種保證,它也無法保證。
?