[易學易懂系列|rustlang語言|零基礎|快速入門|(1)|開篇]


今天我們來開一個新系列。

從零學習rustlang。

簡單介紹下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

要檢查您是否安裝了 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,即 Rust 包的倉庫中找到所有類別的庫。在 Rust 中,我們通常把包稱作“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官網,已經沒有被牆了。如果你發現有被牆的現象或遇到什么問題,歡迎加入:rust新手群,在這里我可以提供一些簡單的幫助,加微信:360369487,注明:博客園+rust

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM