簡單介紹下rustlang:
Rust 是一門系統級編程語言,被設計為保證內存和線程安全,防止段錯誤產生。作為系統級編程語言,它的基本理念是 “零開銷抽象”。理論上來說,它的速度與 C/C++ 同級。Rust 可以被歸為通用的、多范式、編譯型的編程語言,類似 C/C++。與這兩門編程語言不同的是,Rust 是線程安全的!Rust 編程語言的目標是,創建一個安全和并發的軟件系統。它強調安全性、并發和內存控制。盡管 Rust 借用了 C/C++ 的語法,卻杜絕了空指針和懸掛指針,而這二者是 C/C++ 中系統崩潰、內存泄露和不安全代碼的根源。
雖然 Rust 是一門系統級編程語言,但并不意味著它只能寫底層程序(操作系統、驅動、工具、數據庫、搜索引擎等),它的抽象層次之高完全給人驚艷的感覺,實踐證明它對問題建模的能力和方便性不比 C++/Java/Python/Ruby 差。但 Haskell 這類超高抽象語言,也不是 Rust 的發展方向。Rust 力求在抽象與現實世界中找到一個平衡
關于rust的一切。不多說,只在這里說一句:Rust 已經在 StackOverflow 的年度語言評選中,連續 4 年榮獲“程序員最喜愛語言”第一名(2016, 2017, 2018, 2019)。
好吧,開始我們的學習。
1)安裝。
參考官網:https://www.rust-lang.org/zh-CN/tools/install
2)工具。
這里用vscode。
這里推薦的rust的插件有:
Rust Extension Pack
Rust Test Explorer
基本已經夠了。
好了,下面我們來寫代碼 :
首先,我們還是用官網的示例,因為這個太經典了。
a.)先來了解可愛的cargo:
### Cargo:Rust 的構建工具和包管理器
您在安裝 Rustup 時,也會安裝 Rust 構建工具和包管理器的最新穩定版,即 Cargo。Cargo 可以做很多事情:
* `cargo build`可以構建項目
* `cargo run`可以運行項目
* `cargo test`可以測試項目
* `cargo doc`可以為項目構建文檔
* `cargo publish`可以將庫發布到[crates.io](https://crates.io/)。
要檢查您是否安裝了 Rust 和 Cargo,可以在終端中運行:
`cargo --version`
要詳細研究cargo可以到這里:https://doc.rust-lang.org/cargo/index.html
b.)創建新項目
我們將在新的 Rust 開發環境中編寫一個小應用。首先用 Cargo 創建一個新項目。在您的終端中執行:
`cargo new hello-rust`
這會生成一個名為`hello-rust`的新目錄,其中包含以下文件:
~~~
hello-rust
|- Cargo.toml
|- src
|- main.rs
~~~
`Cargo.toml`為 Rust 的清單文件。其中包含了項目的元數據和依賴庫。
`src/main.rs`為編寫應用代碼的地方。
* * *
`cargo new`會生成一個新的“Hello, world!”項目!我們可以進入新創建的目錄中,執行下面的命令來運行此程序:
`cargo run`
您應該會在終端中看到如下內容:
~~~
$ cargo run
Compiling hello-rust v0.1.0 (/Users/ag_dubs/rust/hello-rust)
Finished dev [unoptimized + debuginfo] target(s) in 1.34s
Running `target/debug/hello-rust`
Hello, world!b.)
~~~
現在我們來為應用添加依賴。您可以在[crates.io](https://crates.io/),即 Rust 包的倉庫中找到所有類別的庫。在 Rust 中,我們通常把包稱作“crates”。
在本項目中,我們使用了名為[`ferris-says`](https://crates.io/crates/ferris-says)的庫。
我們在`Cargo.toml`文件中添加以下信息(從 crate 頁面上獲取):
~~~
[dependencies]
ferris-says = "0.1"
~~~
接著運行:
`cargo build`
…之后 Cargo 就會安裝該依賴。
運行此命令會創建一個新文件`Cargo.lock`,該文件記錄了本地所用依賴庫的精確版本。
要使用該依賴庫,我們可以打開`main.rs`,刪除其中所有的內容(它不過是個示例而已),然后在其中添加下面這行代碼:
~~~
use ferris_says::say;
~~~
這樣我們就可以使用`ferris-says`crate 中導出的`say`函數了。``在`main.rs`中添加以下代碼:``
~~~
use ferris_says::say; // from the previous step
use std::io::{stdout, BufWriter};
fn main() {
let stdout = stdout();
let out = b"Hello fellow Rustaceans!";
let width = 24;
let mut writer = BufWriter::new(stdout.lock());
say(out, width, &mut writer).unwrap();
}
~~~
保存完畢后,我們可以輸入以下命令來運行此應用:
`cargo run`
如果一切正確,您會看到該應用將以下內容打印到了屏幕上:
~~~
----------------------------
| Hello fellow Rustaceans! |
----------------------------
\
\
_~^~^~_
\) / o o \ (/
'_ - _'
/ '-----' \
如果你能看到最后的打印結果。那么恭喜你,你已經可以寫rust的代碼了。
~~~
- rustlang語言零基礎快速入門(1)開篇
- rustlang語言零基礎快速入門(2)VSCODE配置
- rustlang語言零基礎快速入門(3)所有權Ownership
- rustlang語言零基礎快速入門(4)
- rustlang語言零基礎快速入門(5)
- rustlang語言零基礎快速入門(6)變量綁定
- rustlang語言零基礎快速入門(7)函數Functions與閉包Closure
- rustlang語言零基礎快速入門(8)Operators操作符
- rustlang語言零基礎快速入門(9)Control Flows流程控制
- rustlang語言零基礎快速入門(10)Vectors容器
- rustlang語言零基礎快速入門(11)Structs結構體
- rustlang語言零基礎快速入門(12)Enums枚舉
- rustlang語言零基礎快速入門(13)Generics泛型
- rustlang語言零基礎快速入門(14)Impls & Traits實現與特征
- rustlang語言零基礎快速入門(15)Unit Testing單元測試
- rustlang語言零基礎快速入門(16)代碼組織與模塊化
- rustlang語言零基礎快速入門(17)裝箱crates
- rustlang語言零基礎快速入門(18)use關鍵詞
- rustlang語言零基礎快速入門(19)多線程
- rustlang語言零基礎快速入門(20)錯誤處理
- rustlang語言零基礎快速入門(21)智能指針
- rustlang語言零基礎快速入門(22)宏Macro
- rustlang語言零基礎快速入門(23)實戰1:猜數字游戲
- rustlang語言零基礎快速入門(24)實戰2:命令行工具minigrep(1)
- rustlang語言零基礎快速入門(25)實戰2:命令行工具minigrep(2)
- rustlang語言零基礎快速入門(26)實戰3:Http服務器
- rustlang語言零基礎快速入門(26)實戰3:Http服務器(多線程版本)
- rustlang語言零基礎快速入門(27)實戰4:從零實現BTC區塊鏈
- rustlang語言零基礎快速入門(28)實戰5:實現BTC價格轉換工具
- rustlang語言零基礎快速入門(29)實戰6:BDD工具cucumber_rust