Rust
語言的介紹、特性什么的都不說了,如有需要,請自行了解。這里我們直接進去正題。
一、開發環境
mac或linux系統,在命令行安裝
curl https://sh.rustup.rs -sSf | sh
安裝過程中會詢問安裝方式,我直接選擇的第一種默認方式,第二種是自定義,第三種是取消安裝
然后會發現在自己家目錄下有一個 .cargo
的隱藏文件夾,里面有四個文件 bin env git registry
。
1.env
文件設置了 Rust
的環境變量,
2.bin
文件夾下是相關的工具 cargo cargo-miri rust-gdb rustdoc cargo-clippy clippy-driver rust-lldb rustfmt cargo-fmt rls rustc rustup
。
更新到最新版本(rust會6個星期更新一個版本)
rustup upddate
查看版本
rustc --version
cargo --version
卸載
rustup self uninstall
在 Windows
系統上就不說了,直接下載 Rust安裝包rustup-init.exe 安裝即可。
tips: 如果想查看文檔,可以使用如下命令:
rustup doc
二、Hello World
學習語言的老規矩,二話不多說,先寫一個Hello World
。
新建一個 hello.rs
文件,寫入如下內容:
fn main() {
println!("Hello, world!");
}
然后編譯運行即可
rustc hello.rs // 編譯,會編譯出一個名為hello的可執行文件
./hello // 運行,會把"Hello, world!"打印出來
做一個簡單的說明,fn
是方法聲明的關鍵字,main
是主函數的名字,rust
程序的入口,即 rust
程序是從 main
方法開始運行的。方法名字后面通常會跟着一對小括號 ()
,然后是大括號 {}
包裹着函數體(方法的參數和返回值暫且不說)。本文的函數體就是打印 Hello, World!
字符串,而 println!
則是 rust
中的宏,宏指令后文介紹,現在只需要知道宏指令后面需要緊跟着感嘆號 !
就可以了。
三、Cargo
Cargo
作為 Rust
語言編譯代碼和包的管理工具。大多數 Rust
程序都使用這個工具來管理他們的 Rust
項目,因為 Cargo
幫我們做了大量的工作,比如:編譯代碼、下載代碼需要的依賴,並且編譯這些依賴。
簡單的 Rust
項目不需要任何依賴,比如我們前面寫的那個。所以我們可以只使用 Cargo
編譯代碼部分的功能,但是當你寫復雜項目的時候,就可以在項目中使用 Cargo
來更加容易地添加依賴。
下面我們正式學習這個工具,在上文安裝 Rust
的時候就已經安裝好了這個工具,在此,我們可以查看一下它的版本號:
cargo --version
使用 Cargo
創建一個新的項目,項目名叫 hello_cargo
cargo new hello_cargo && cd hello_cargo
這條命令創建了一個 Cargo.toml
文件和一個 src
文件夾(git相關的就先不說了),Cargo.toml
文件如下:
[package]
name = "hello_cargo"
version = "0.1.0"
authors = ["shanpengfei <shanpengfei7@163.com>"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
[package]
下的四行是項目的基礎信息,Cargo
會自動獲取項目的名字、版本、作者和rust
的發行版本。[dependencies]
則是存放項目需要的依賴。Rust
的包是映射成crates
的,而當前項目不需要任何其它依賴,后文再仔細介紹。
src
文件夾下則是一個 main.rs
文件,里面存放的代碼是
fn main() {
println!("Hello, world!");
}
使用 Cargo
編譯項目
cargo build
這里會生成一個 Cargo.lock
文件和一個 target
文件夾。Cargo.lock
文件用於鎖定項目依賴的版本,而 target
文件夾則是編譯生成的結果。然后運行項目項目
./target/debug/hello_cargo
Hello, world!
其實上面兩條命令可以使用 run
命令代替
cargo run
Finished dev [unoptimized + debuginfo] target(s) in 0.01s
Running `target/debug/hello_cargo`
Hello, world!
在寫代碼的時候,我們通常不需要執行代碼,只需要確保代碼是可編譯的,此時可以使用 check
命令來檢查:
cargo check
Checking hello_cargo v0.1.0 (/Users/shanpengfei/work/rust-work-space/study/hello_cargo)
Finished dev [unoptimized + debuginfo] target(s) in 0.12s
這個命令比 build
命令的速度快,只有當項目需要運行的時候才使用 build
命令。
結尾
最基礎的入門級內容先介紹這么多,下一篇文章使用 rust
做一個小游戲玩一玩。
歡迎閱讀單鵬飛的學習筆記