Rust入坑指南:坑主駕到

歡迎你們和我一塊兒入坑Rust,之後我就是坑主,我主要負責在前面挖坑,各位能夠在上面看,有手癢的也能夠和我一塊兒挖。這個坑到底有多深?我也不知道,我是抱着有多深就挖多深的心態來的,下面我先跳了,各位請隨意。 git

Rust簡介

衆所周知,在編程語言中,更易讀的高級語言和控制底層資源的低級語言是一對矛盾體。Rust想要挑戰這一現狀,它嘗試爲開發者提供更好的體驗的同時給予開發者控制底層細節的權限(好比內存使用)。github

低級語言在開發過程當中很容易出現各類細微的錯誤,它們難以發現可是可能影響巨大。其餘大部分低級語言只能靠覆蓋面更廣的測試用例和經驗豐富的開發者來解決這些問題。而Rust則依靠嚴格的編譯器來杜絕這些問題。編程

Ps:之後會見識到Rust編譯器的「厲害」bash

Rust的一些工具:服務器

  • Cargo,依賴包的管理和構建工具,能夠幫你減輕添加、編譯和管理依賴包的痛苦
  • Rustfmt,用於保證開發者代碼風格的一致性
  • Rust語言服務器支持集成IDE(我用的是IDEA)

安裝Rust

若是你的操做系統是Linux或macOS,在終端執行命令curl

$ curl https://sh.rustup.rs -sSf | sh

安裝過程當中的選項使用默認就好(一路回車),直到出現如下信息時,表示安裝成功。編程語言

Rust is installed now. Great!

安裝腳本會自動把Rust添加到環境變量PATH中,能夠重啓終端或者手動執行命令使添加生效。ide

$ source $HOME/.cargo/env

固然也能夠添加到你的.bash_profile文件中:工具

$ export PATH="$HOME/.cargo/bin:$PATH"

最後,執行如下命令來檢查Rust是否安裝成功測試

$ rustc --version

另外,當你嘗試編譯Rust代碼,但報了linker不可執行的錯誤時,你須要手動安裝一個linker,C編譯器一般會包含正確的linker。Rust的一些公共包也會依賴C語言代碼和編譯器。因此最好如今安裝一個。

IDEA集成Rust

IDEA中集成Rust也很簡單,只須要在Preference->Plugins中搜索Rust,安裝Rust插件後重啓IDEA就能夠了。

Hello World

又到了經典的Hello World時間,此次我不想直接一個簡單的print就結束了,咱們一開始提到了Cargo是Rust依賴包的管理工具,因此我想體驗一下Cargo的用法。

首先新建一個項目,能夠直接用在IDEA中new project,也可使用Cargo命令

cargo new hello-world
cd hello-world

新建好項目之後,它的結構長這樣子

rust-new-project

其中

  • main.rs是咱們代碼的入口文件
  • Cargo.toml是記錄Rust元數據的文件,包括依賴。
  • Cargo.lock是記錄增長依賴log的文件,不能手動修改。

接着咱們在Cargo.toml文件中添加咱們須要的依賴

[dependencies]
ferris-says = "0.1"

這時IDEA會自動安裝依賴包,若是沒有安裝,也能夠手動執行命令來安裝

cargo build

依賴安裝好之後,就能夠開始寫代碼了:

use ferris_says::say;
use std::io::{stdout, BufWriter};

fn main() {
    let stdout = stdout();
    let out = b"Hello World!";
    let width = 12;

    let mut writer = BufWriter::new(stdout.lock());
    say(out, width, &mut writer).unwrap();
}

執行結果

----------------
| Hello World! |
----------------
              \
               \
                  _~^~^~_
              \) /  o o  \ (/
                '_   -   _'
                / '-----' \

沒錯,這是一個小螃蟹,至於它是誰,來看看官方解釋

Ferris is the unofficial mascot of the Rust Community. Many Rust programmers call themselves 「Rustaceans,」 a play on the word 「crustacean.」 We refer to Ferris with the pronouns 「they,」 「them,」 etc., rather than with gendered pronouns.

Ferris is a name playing off of the adjective, 「ferrous,」 meaning of or pertaining to iron. Since Rust often forms on iron, it seemed like a fun origin for our mascot’s name!

You can find more images of Ferris on http://rustacean.net/.

關於toml文件可能有些讀者不太熟悉(其實我本身也不太熟),這裏簡單介紹一下吧,它的全稱是「Tom's Obvious, Minimal Language」,是一種配置文件格式。它的語義是比較明顯的,所以易於閱讀。同時格式能夠明確的映射到hash表,因此也能夠被多種語言輕鬆解析。

GitHub地址是:https://github.com/toml-lang/toml

有興趣的同窗能夠作更深刻的瞭解。

後記

至此,我確信本身已經跳進來了,有想跟進的朋友記得關注我哦。

相關文章
相關標籤/搜索