鍍金池/ 教程/ Java/ Rust旅程
標(biāo)準(zhǔn)輸入與輸出
消息傳遞
循環(huán)
注釋
Rust for Mac OS
幾種智能指針
Cell, RefCell
trait對象 (trait object)
rust web 開發(fā)
Unsafe、原始指針
Macro
迭代器
函數(shù)
Borrow, BorrowMut, ToOwned
快速上手
二叉樹
編輯器
測試與評測
Deref
安裝Rust
哈希表 HashMap
原生類型
17.錯(cuò)誤處理
VS Code 安裝配置
動(dòng)態(tài)數(shù)組Vec
模式匹配
操作符和格式化字符串
Rust for Linux
函數(shù)參數(shù)
Visual Studio
vim/GVim安裝配置
閉包作為參數(shù)和返回值
安全(Safety)
Cow
生命周期( Lifetime )
閉包的實(shí)現(xiàn)
所有權(quán)(Ownership)
Atom
將Rust編譯成庫
類型、運(yùn)算符和字符串
類型系統(tǒng)中的幾個(gè)常見 trait
特性
屬性和編譯器參數(shù)
Spacemacs
集合類型
Rust json處理
Heap & Stack
并行
標(biāo)準(zhǔn)庫示例
基本程序結(jié)構(gòu)
鏈表
trait 和 trait對象
前期準(zhǔn)備
代碼風(fēng)格
編譯器參數(shù)
基于語義化版本的項(xiàng)目版本聲明與管理
Rust 版本管理工具: rustup
引用&借用(References&Borrowing)
注釋與文檔
10.1 trait關(guān)鍵字
模式
調(diào)用ffi函數(shù)
unsafe
并發(fā),并行,多線程編程
AsRef 和 AsMut
Rust旅程
Rust for Windows
結(jié)構(gòu)體與枚舉
條件分支
附錄I-術(shù)語表
變量綁定與原生類型
Mutex 與 RwLock
泛型
裸指針
常用數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)
系統(tǒng)命令:調(diào)用grep
Into/From 及其在 String 和 &str 互轉(zhuǎn)上的應(yīng)用
共享內(nèi)存
Sublime
網(wǎng)絡(luò)模塊:W貓的回音
函數(shù)返回值
包和模塊
高階函數(shù)
函數(shù)與方法
match關(guān)鍵字
隊(duì)列
目錄操作:簡單grep
語句和表達(dá)式
并發(fā)編程
閉包
測試
閉包的語法
同步
迭代器
String
Send 和 Sync
Rc 和 Arc
屬性
Emacs
優(yōu)先隊(duì)列
Prelude
cargo簡介
控制流(control flow)
數(shù)組、動(dòng)態(tài)數(shù)組和字符串
FFI
模塊和包系統(tǒng)、Prelude
實(shí)戰(zhàn)篇
Rust 是一門系統(tǒng)級編程語言,被設(shè)計(jì)為保證內(nèi)存和線程安全,并防止段錯(cuò)誤。作為系統(tǒng)級編程語言,它的基本理念是 “零開銷抽象”。理
運(yùn)算符重載
Any和反射
rust數(shù)據(jù)庫操作
輸入輸出流
復(fù)合類型
性能測試

Rust旅程

HelloWorld

按照編程語言的傳統(tǒng),學(xué)習(xí)第一門編程語言的第一個(gè)程序都是打印 Hello World! 下面根據(jù)我們的步驟創(chuàng)建 Rust 的 Hello World!程序:

下面的命令操作,如果沒有特別說明,都是在shell下運(yùn)行。本文為了簡單統(tǒng)一,所有例子都在 win10 的 powershell 下運(yùn)行,所有命令都運(yùn)行在ps:標(biāo)識符之后

  • 創(chuàng)建一個(gè) Doing 目錄和 helloworld.rs 文件

ps: mkdir ~/Doing
ps: cd ~/Doing
ps: notepad helloworld.rs # 作者偏向于使用 sublime 作為編輯器
ps: subl helloworld.rs # 本章以后使用 subl 代替 notepad

注意這里用的后綴名是.rs,一般編程語言的代碼文件都有慣用的后綴名,比如: C語言是.c,java是.java,python是.py等等,請務(wù)必記住Rust語言的慣用后綴名是.rs(雖然用別的后綴名也能通過rustc的編譯)。

  • 在 helloworld.rs 文件中輸入 Rust 代碼
fn main() {
    println!("Hello World!");
}
  • 編譯 helloworld.rs 文件

ps: rustc helloworld.rs
ps: rustc helloworld.rs -O # 也可以選擇優(yōu)化編譯

  • 運(yùn)行程序

ps: ./helloworld.exe # windows 平臺下需要加 .exe 后綴
Hello World!

沒有ps:前綴的表示為控制臺打印輸出。

我們已經(jīng)用rust編寫第一個(gè)可執(zhí)行程序,打印出了'hello world!',很酷,對吧! 但是這段代碼到底是什么意思呢,作為新手的你一定云里霧里吧,讓我們先看一下這個(gè)程序:

  1. 第一行中 fn 表示定義一個(gè)函數(shù),main是這個(gè)函數(shù)的名字,花括號{}里的語句則表示這個(gè)函數(shù)的內(nèi)容。
  2. 名字叫做main的函數(shù)有特殊的用途,那就是作為程序的入口,也就是說程序每次都從這個(gè)函數(shù)開始運(yùn)行。
  3. 函數(shù)中只有一句 println!("Hello World!");,這里println!是一個(gè)Rust語言自帶的, 這個(gè)宏的功能就是打印文本(結(jié)尾會(huì)換行),而"Hello World!"這個(gè)用引號包起來的東西是一個(gè)字符串,就是我們要打印的文本。
  4. 你一定注意到了;吧, 在Rust語言中,分號;用來把語句分隔開,也就是說語句的末尾一般用分號做為結(jié)束標(biāo)志。

HelloRust

  • 創(chuàng)建項(xiàng)目 hellorust

ps: cargo new hellorust --bin

  • 查看目錄結(jié)構(gòu)

ps: tree # win10 powershell 自帶有 tree 查看文件目錄結(jié)構(gòu)的功能
└─hellorust
----└─src

這里顯示的目錄結(jié)構(gòu),在hellorust目錄下有 src 文件夾和 Cargo.toml 文件,同時(shí)這個(gè)目錄會(huì)初始化為 git 項(xiàng)目

  • 查看Cargo.toml文件

ps: cat Cargo.toml
[package]
name = "hellorust"
version = "0.1."
authors = ["YourName "]
[dependencies]

  • 編輯src目錄下的main.rs文件

ps: subl ./src/main.rs

cargo 創(chuàng)建的項(xiàng)目,在src目錄下會(huì)有一個(gè)初始化的main.rs文件,內(nèi)容為:

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

現(xiàn)在我們編輯這個(gè)文件,改為:

fn main() {
    let rust = "Rust";
    println!("Hello, {}!", rust);
}

這里的 let rust = "Rust" 是把 rust 變量綁定為 "Rust" , println!("Hello, {}!", rust);里把 rust 變量的值代入到"Hello, {}!"中的{}。

  • 編譯和運(yùn)行

ps: cargo build
ps: cargo build --release # 這個(gè)屬于優(yōu)化編譯
ps: ./target/debug/hellorust.exe
ps: ./target/release/hellorust.exe # 如果前面是優(yōu)化編譯,則這樣運(yùn)行
ps: cargo run # 編譯和運(yùn)行合在一起
ps: cargo run --release # 同上,區(qū)別是是優(yōu)化編譯的

上一篇:特性下一篇:模式匹配