Rust 格式化宏 -format--

在這篇文章中,讓我們探索使用格式說明符來格式化整數、十進制和字符串。

格式化整數

爲了按原樣格式化整數,我們必須將整數作爲參數傳遞給格式化宏:

println!("{}", format!("{}", 100));

對於具有特定位數的零位整數,在格式化宏中指定長度。在下面的例子中,我們將有一個最多 10 位的零填充整數:

println!("{}", format!("{:010}", 5));

將數字轉換爲二進制格式,只需在格式化宏中指定 #b:

println!("{}", format!("{:#b}", 50));

將數字轉換爲八進制格式,只需在格式化宏中指定 #o:

println!("{}", format!("{:#o}", 50));

將數字轉換爲十六進制格式,只需在格式化宏中指定 #x 或 #x:

println!("{}", format!("{:#x}", 50));

下面的例子,將格式化數字 10 億,可以使用 num_format crate 來實現:

[dependencies]
num-format = "0.4.4"
use num_format::ToFormattedString;

fn main() {
    println!("{}", 1_000_000_000.to_formatted_string(&num_format::Locale::en));
}

在法語地區格式化數字 10 億:

println!("{}", 1_000_000_000.to_formatted_string(&num_format::Locale::fr));

在印度地區格式化數字 10 億:

println!("{}", 1_000_000_000.to_formatted_string(&num_format::Locale::en_IN));

以上語句的執行結果:

100
0000000005
0b110010
0o62
0x32
1,000,000,000
1 000 000 000
1,00,00,00,000

格式化小數

若要格式化具有特定精度的十進制數,可以使用以下說明符:

println!("{}", format!("{:.5}", 100.02));

如果十進制數超過給定的精度,則該數字將在第 n 個精度處四捨五入。下面的代碼輸出 100.02782:

println!("{}", format!("{:.5}", 100.02781839));

以上語句的執行結果:

100.02000
100.02782

格式化字符串

要以左對齊的方式格式化字符串,可以在宏中使用下面的說明符:

println!("{}", format!("{:<20}""Rust is awesome"));

要在給定長度內對齊字符串的中心,我們可以在宏中使用下面的說明符:

println!("{}", format!("{:^20}""Rust is awesome"));

要在給定長度內對字符串進行右對齊,可以在宏中使用下面的說明符:

println!("{}", format!("{:>20}""Rust is awesome"));

如果你想用特定的字符填充空白,我們只需要在說明符中各自的符號 (^,>,<) 之前指定特定的字符:

println!("{}", format!("{:*^20}""Rust is awesome"));

我們也可以使用上面的說明符來對齊整數。

以上語句的執行結果:

Rust is awesome     
  Rust is awesome   
     Rust is awesome
**Rust is awesome***

本文翻譯自:

https://dev.to/ssivakumar/rust-formatting-881

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/ULgEndpByD-KtwF4EIU6Zw