1. 程式人生 > 其它 >Rust學習筆記(一)——輸出到命令列

Rust學習筆記(一)——輸出到命令列

技術標籤:Rustrust

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},飛入梅花都不見。","片");
}

執行結果為:
在這裡插入圖片描述
引數只有一個”片“,但是重複引用了多次。引數是被以類似陣列的方式引用的。

Index012
Value引數1引數2引數3

所以,只要標明每次呼叫的引數對應的Index就可以重複的引用引數了。如果不寫引數Index,那麼,Rust預設從引數1開始,依次遞增引用。
下邊的這段程式碼就很好的說明了這種情況:

fn main() {
    println!("{1},{},{2},{},{}",1,2,3);
}

執行結果為:

2,1,3,2,3

引數陣列如下:

Index012
Value123

第一個佔位符"{1}"表示引用Index為”1“的引數,其值為”2“,第二個佔位符沒有標明Index,從Index為”0“的第一個引數開始引用,故其值為”1“,第三個佔位符引用Index為”2“的引數,其值為”3“,第四個佔位符未標明Index,從上一個預設引用的引數遞增一個引用,也就是Index未”1“的引數,即為第二個引數,其值為”2“,同理,第五個佔位符引用的是Index為”3“的引數,其值為”3“。