按照編程語言的傳統(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)識符之后
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的編譯)。
fn main() {
println!("Hello World!");
}
ps: rustc helloworld.rs
ps: rustc helloworld.rs -O # 也可以選擇優(yōu)化編譯
ps: ./helloworld.exe # windows 平臺下需要加 .exe 后綴
Hello World!
沒有ps:
前綴的表示為控制臺打印輸出。
我們已經(jīng)用rust編寫第一個(gè)可執(zhí)行程序,打印出了'hello world!',很酷,對吧! 但是這段代碼到底是什么意思呢,作為新手的你一定云里霧里吧,讓我們先看一下這個(gè)程序:
println!("Hello World!");
,這里println!
是一個(gè)Rust語言自帶的宏,
這個(gè)宏的功能就是打印文本(結(jié)尾會(huì)換行),而"Hello World!"這個(gè)用引號包起來的東西是一個(gè)字符串,就是我們要打印的文本。;
吧, 在Rust語言中,分號;
用來把語句分隔開,也就是說語句的末尾一般用分號做為結(jié)束標(biāo)志。ps: cargo new hellorust --bin
ps: tree # win10 powershell 自帶有 tree 查看文件目錄結(jié)構(gòu)的功能
└─hellorust
----└─src
這里顯示的目錄結(jié)構(gòu),在hellorust目錄下有 src 文件夾和 Cargo.toml 文件,同時(shí)這個(gè)目錄會(huì)初始化為 git 項(xiàng)目
ps: cat Cargo.toml
[package]
name = "hellorust"
version = "0.1."
authors = ["YourName"]
[dependencies]
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, {}!"
中的{}
。
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)化編譯的