普通人學習rust——從零到放棄 安裝和第一個程序
環境
本文章內容基於如下環境,如若出入請參考當前環境。
rustc 1.42.0 (b8cedc004 2020-03-09)
cargo 1.42.0 (86334295e 2020-01-31)
前言
我常常認為說“Linux系統很好用”的人有兩類人,一種是大神,的確很牛B,第二種是跟風者,根本沒常用過Linux。所謂要認知一件事,就要去實踐它,即使可能得到不同與別人的結論。事實上,我已經學習rust一段時間了,也基本已經放棄了這門語言。對於我(普通人不是大神)來說,rust缺點就是:
- 1、難以理解的語法邏輯
- 2、怪異的語法,為了突出特點而設(很別扭)
- 3、難於控制的內存泄漏或占用,或者說是缺少優質的第三方庫。
rust是我認為僅次於go,不想接觸的語言。本系列文章所有內容不一定有正確性,所理解僅為個人理解,不懂之處請見諒,因為我也可能不懂,基於以上三點。
優點
說完缺點,就說為什么要選擇rust
- 1、接近c/cpp的性能
- 2、內存安全性
安裝
離線安裝包下載地址[https://forge.rust-lang.org/infra/other-installation-methods.html],這里僅於windows安裝為例,選擇x86_64-pc-windows-gnu或x86_64-pc-windows-msvc其中一個下載安裝,如果安裝成功運行錯誤就選擇另外一個。
運行
查看rustc版本
rustc -V
查看cargo版本
cargo -V
第一個程序
新建main.rs文件
fn main(){
println!("這是我的第一個rust程序!!😥");
}
編譯
rustc main.rs
運行
main.exe
結果
這是我的第一個rust程序!!😥
fn為function的簡寫,main()為程序入口函數。吐槽:其他關鍵字全寫,就function要簡寫成fn,要么全寫要么簡寫!這里需要注意的是println!非println,多了感嘆號!,后綴不帶感嘆號為普通函數,帶感嘆號的為宏函數,rust不存在println普通函數。
錯誤示例
fn main(){
println("這是我的第一個rust程序!!😥");
}
編譯異常
error[E0423]: expected function, found macro `println`
--> main.rs:2:5
|
2 | println("這是我的第一個rust程序!!😥");
| ^^^^^^^ help: use `!` to invoke the macro: `println!`
error: aborting due to previous error
For more information about this error, try `rustc --explain E0423`.
參考資料
這里列舉一些參考網站,方便讀者學習參考
- rust官網[https://www.rust-lang.org/zh-CN/]
- rust常見問題解答[https://prev.rust-lang.org/zh-CN/faq.html#strings]
- 標准庫[https://doc.rust-lang.org/std/]
- rust中文文檔指引[https://prev.rust-lang.org/zh-CN/documentation.html]
- 通過例子學習rust(中文版)[https://rustwiki.org/zh-CN//rust-by-example/]
- rust程序設計語言(中文版)[https://kaisery.github.io/trpl-zh-cn/]
- cargo倉庫[https://crates.io/]
