Rust學習筆記(一)

第一步要做的事情是


安裝Rust編譯環境(人人都有的windows)

咱工作機器是win7+mingw
所以直接到下面的鏈接下載Windows ([GNU ABI ?]) (.msi)就好

https://www.rust-lang.org/en-US/downloads.html

安裝完成后在mingw里輸入"rustc --version"檢查安裝是否成功
如果安裝成功會看到以下輸出


Paste_Image.png

該來的總會來


Hello World

總之先創建一個放代碼的文件夾

$ mkdir hello_world
$ cd hello_world

Rust源文件的后綴名是“.rs”,所以咱們現在要創建一個叫“main.rs”的文件然后把下面的代碼放到里面。

fn main() 
{
    println!("Hello world!"); 
}
  • 第一行代碼定義了一個沒有參數沒有返回值的函數main,因為咱主業是搞c++,無返回值的函數前面沒有void還是感覺有點怪。
  • 第二行和最后一行是大括號把函數的實現代碼包起來,這沒啥好說的。
  • 第三行,這一行把hello world輸出到屏幕,名字很直觀print line;說起來官方的文檔上特別強調縮進是4個空格,不要用tab,咱還以為用tab會有啥問題,特意試了下并沒有啥功能上的區別能編能跑,果然還是強調碼規范吧。值得一提的是,println!()這樣表示調用的是Rust的宏,是meta編程的實現方式,如果去掉‘!’就是直接調用函數了。關于Rust宏的部分咱還沒看到,總之慢慢來_(:з」∠)_。最后用‘;’結尾,因為咱主業是搞c++,咱覺得這很合理。

接下來咱們就要編了

$ rustc main.rs

運行完這個命令后同級目錄下會出現一個main.exe,Linux或者mac就直接是main了,運行它!
然后咱們會看到

Paste_Image.png

總要搞個大項目


Cargo 碉堡了!

Cargo是Rust的包管理器和構建系統,能編咱們的工程,還能下載咱們工程依賴的庫,還能編咱們下載下來的依賴庫!因為咱還搞過iOS,咱覺得cocoapods很方便,看到Cargo有這功能咱很欣慰。
一般來說通過安裝包安裝Rust編譯環境的都自帶了Cargo,運行下面的命令來檢查Cargo是否正常

$ cargo --version

如果成功咱們會看到

Paste_Image.png

接下來咱們用Cargo重新編譯Hello world,但是咱們的工程文件夾目前的結構不是很合適,要稍微挪一挪

$ mkdir src
$ mv ./main.rs src
$ rm ./main.exe

在hello_world目錄下創建一個文件,命名為Cargo.toml,注意C務必要大寫。
這是一個TOML文件,用起來有點像INI,但是更強大(其實咱也沒怎么用過_(:з」∠)_)。

接著把下面的代碼寫入Cargo.toml

[package]

name = "hello_world"
version = "0.0.1"
authors = [ "Your name <you@example.com>" ]

[package]表示接下來的都是用來配置package的部分,接下來的三行配置程序名稱、程序版本以及作者。

保存好后咱們開始build

$ cargo build

如果build成功咱們會看到

Paste_Image.png

運行!

$ ./target/debug/hello_world.exe
Paste_Image.png

換著法兒運行!

$ cargo run
Paste_Image.png

要快,要Release

輸入以下命令來編Release版本,編譯Release版本會讓咱們的程序跑的更快,但是編譯起來會更慢。

$ cargo build --release
Paste_Image.png

Cargo.lock是神馬

在使用Cargo編譯完咱們的工程后在咱們工作路徑下會多出一個文件“Cargo.lock”

Paste_Image.png

里面的內容看起來應該是這個樣子:

[root]
name = "hello_world"
version = "0.0.1"

Cargo用這個文件來跟蹤咱們工程中的各種依賴。因為咱們寫的hello_world沒有任何依賴,所以咱們的Cargo.lock看起來超簡單。在實際工作中咱們一般不用碰這個文件,一切交給超厲害的Cargo就好。

論如何輕松痛快的創建新項目

懶是推動科技發展的最強大的力量——孔子

超懶的咱要用Cargo new來輕松創建新項目

$ cargo new hello_worldex --bin

new之后跟的第一個參數是新項目路徑,--bin表示這個新建項目是一個可執行程序。
運行完上面那條命令后,就會發現當前目錄下多了一個hello_worldex文件夾。


Paste_Image.png

該文件夾中包含一個Cargo.toml 和一個src文件夾
打開Cargo.toml看看,……居然自動添加了咱的名字……

[package]
name = "hello_worldex"
version = "0.1.0"
authors = ["Renzhi"]

[dependencies]

咱們還會在src中找到自動生成的main.rs
內容如下

fn main() {
    println!("Hello, world!");
}

居然寫好了hello world……咱很欣慰

參考資料


The Rust Programming Language
Cargo Guide

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 通用編程概念 變量與可變性 變量默認不可變,如需要改變,可在變量名前加 mut 使其可變。例如:let mut a...
    soojade閱讀 12,604評論 2 30
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,969評論 19 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,422評論 25 708
  • 此時正在辦公,也不忘忙中偷閑。一枚貪吃的吃貨正出沒...... 因為有你的相伴,倒平添了不少歡愉。感謝有...
    小孜閱讀 249評論 0 2