鄭州哪些公司做網(wǎng)站建設(shè)全網(wǎng)推廣的方式
Rust是一種新興編程語言,既有高級語言的風(fēng)格,又有底層語言級別的性能;是對于實時性、安全性要求高的應(yīng)用開發(fā)的理想語言。
筆者的自學(xué)記錄,供參考
環(huán)境搭建與第一個Rust程序
- 以Linux環(huán)境為例
# 下載并安裝
curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh
# 更新
rustup update
# 檢查安裝是否成功
rustc -V
- Rust語言的包管理工具–cargo
# 新建world_hello工程
cargo new world_hello
# 運行的第一種方式
cargo run
# 第二種方式
cargo build
./target/debug/<bin>
# 編譯出高性能代碼
cargo run --release
# 更快地驗證代碼的正確性
cargo check
- 初識Rust語言
打開main.rs文件,
fn greet_world() {let southern_germany = "Grü? Gott!";let chinese = "世界,你好";let english = "World, hello";let regions = [southern_germany, chinese, english];for region in regions.iter() {println!("{}", ®ion);}
}fn main() {greet_world();
}
下面的示例,展示了一些Rust的特性,你會發(fā)現(xiàn)類似C\Python的風(fēng)格。
fn main() {let penguin_data = "\common name,length (cm)Little penguin,33Yellow-eyed penguin,65Fiordland penguin,60Invalid,data";let records = penguin_data.lines();for (i, record) in records.enumerate() {if i == 0 || record.trim().len() == 0 {continue;}// 聲明一個 fields 變量,類型是 Vec// Vec 是 vector 的縮寫,是一個可伸縮的集合類型,可以認(rèn)為是一個動態(tài)數(shù)組// <_>表示 Vec 中的元素類型由編譯器自行推斷,在很多場景下,都會幫我們省卻不少功夫let fields: Vec<_> = record.split(',').map(|field| field.trim()).collect();if cfg!(debug_assertions) {// 輸出到標(biāo)準(zhǔn)錯誤輸出eprintln!("debug: {:?} -> {:?}",record, fields);}let name = fields[0];// 1. 嘗試把 fields[1] 的值轉(zhuǎn)換為 f32 類型的浮點數(shù),如果成功,則把 f32 值賦給 length 變量//// 2. if let 是一個匹配表達(dá)式,用來從=右邊的結(jié)果中,匹配出 length 的值:// 1)當(dāng)=右邊的表達(dá)式執(zhí)行成功,則會返回一個 Ok(f32) 的類型,若失敗,則會返回一個 Err(e) 類型,if let 的作用就是僅匹配 Ok 也就是成功的情況,如果是錯誤,就直接忽略// 2)同時 if let 還會做一次解構(gòu)匹配,通過 Ok(length) 去匹配右邊的 Ok(f32),最終把相應(yīng)的 f32 值賦給 length//// 3. 當(dāng)然你也可以忽略成功的情況,用 if let Err(e) = fields[1].parse::<f32>() {...}匹配出錯誤,然后打印出來,但是沒啥卵用if let Ok(length) = fields[1].parse::<f32>() {// 輸出到標(biāo)準(zhǔn)輸出println!("{}, {}cm", name, length);}}}