Rust學習筆記(一)——輸出到命令列
Rust學習筆記(一)——輸出到命令列
Hello World
按照學習計算機語言的慣例,第一步是實現輸出Hello World。 程式碼如下:
fn main() {
println!("Hello World");
}
在工程資料夾下,依次執行如下命令:
cargo build
cargo run
就可以看到輸出的結果:
Hello World
Rust 輸出文字的方式主要有兩種:println!() 和 print!()。這兩個巨集(如果是呼叫函式,則不加”!“,即println,這個有啥區別還沒學到:D,學到了再做筆記)都是向命令列輸出字串的方法,區別僅在於前者會在輸出的最後附加輸出一個換行符。
格式化輸出
佔位符"{}"
當用這兩個巨集輸出資訊的時候,第一個引數是格式字串,後面是一串引數,對應著格式字串中的"佔位符",各個可變引數之間要用逗號",“隔開。這一點與 C 語言中的 printf 函式很相似。但是,Rust 中格式字串中的佔位符不是”% + 字母"的形式,而是一對 {}。
例如:
fn main() {
let a=27;
println!("Age is {}.",a);
}
這段程式碼執行的結果為:
Age is 27.
多個佔位符
當需要多個佔位符時,每個個佔位符必須要有相應的引數。
fn main() {
let a=27;
let m=64;
println!("Age is {},weight is {}.",a,m);
}
這段程式碼執行的結果為:
Age is 27,weight is 64.
下面一段程式碼是錯誤的,存在無引數可引用的佔位符,將無法通過編譯。
fn main() {
println!("{},{},{}",27,64);
}
引數陣列
(這個概念是我自己命名的,官方說法是啥沒注意了。)當多個佔位符引用相同的引數時,可以不需要重複寫入引數名,Rust提供了一個非常好的解決方案。
下面一段程式碼:
fn main() {
println!("一{0}兩{0}三四{0},五六七八九十{0}。
千{0}萬{0}無數{0},飛入梅花都不見。","片");
}
執行結果為:
引數只有一個”片“,但是重複引用了多次。引數是被以類似陣列的方式引用的。
Index | 0 | 1 | 2 | … |
---|---|---|---|---|
Value | 引數1 | 引數2 | 引數3 | … |
所以,只要標明每次呼叫的引數對應的Index就可以重複的引用引數了。如果不寫引數Index,那麼,Rust預設從引數1開始,依次遞增引用。
下邊的這段程式碼就很好的說明了這種情況:
fn main() {
println!("{1},{},{2},{},{}",1,2,3);
}
執行結果為:
2,1,3,2,3
引數陣列如下:
Index | 0 | 1 | 2 |
---|---|---|---|
Value | 1 | 2 | 3 |
第一個佔位符"{1}"表示引用Index為”1“的引數,其值為”2“,第二個佔位符沒有標明Index,從Index為”0“的第一個引數開始引用,故其值為”1“,第三個佔位符引用Index為”2“的引數,其值為”3“,第四個佔位符未標明Index,從上一個預設引用的引數遞增一個引用,也就是Index未”1“的引數,即為第二個引數,其值為”2“,同理,第五個佔位符引用的是Index為”3“的引數,其值為”3“。