Rust?語言println!?宏的格式占位符詳解
一、占位符
println!
宏的占位符主要基于 Rust 的格式化語法,它支持多種占位符格式來插入和格式化不同的值。除了 {}
和 {:?}
之外,還有其他幾種形式:
- 基本占位符
{}
:用于插入任何實現(xiàn)了Display
trait 的類型的值。 - 調(diào)試占位符
{:?}
:用于插入任何實現(xiàn)了Debug
trait 的類型的值,通常用于調(diào)試目的,因為它會提供更詳細(xì)的輸出。 - 格式說明符
{:fmt}
:其中fmt
是格式字符串,允許你更詳細(xì)地控制值的輸出。例如,你可以控制整數(shù)的基數(shù)({:x}
表示十六進制),浮點數(shù)的精度({:.2f}
表示兩位小數(shù)),字符串的寬度和對齊方式等。
let num = 255; println!("Hex: {:x}", num); // 輸出: Hex: ff
4,命名參數(shù) {name}
:在復(fù)雜的格式化字符串中,你可以給占位符命名,并在后面通過 format!
宏的參數(shù)列表提供值。
let name = "Alice"; let age = 30; println!("Name: {name}, Age: {age}", name=name, age=age); // 輸出: Name: Alice, Age: 30
5.位置參數(shù) {0}
、{1}
等:你也可以通過位置來引用 format!
宏參數(shù)列表中的值。位置從 0 開始。
let name = "Alice"; let age = 30; println!("Name: {0}, Age: {1}", name, age); // 輸出: Name: Alice, Age: 30
6.寬度、精度和填充:你可以在格式說明符中指定字段的寬度、精度和填充字符。
let num = 123; println!("Number: {:>10}", num); // 輸出: Number: 123 (右對齊,總寬度為10) println!("Number: {:<10}", num); // 輸出: Number: 123 (左對齊,總寬度為10) println!("Number: {:^10}", num); // 輸出: Number: 123 (居中對齊,總寬度為10) println!("Number: {:0>10}", num); // 輸出: Number: 0000000123 (右對齊,用0填充至總寬度10)
7.二進制、八進制、十進制和十六進制:你可以使用不同的格式說明符來以不同的基數(shù)顯示整數(shù)。
let num = 255; println!("Dec: {:d}", num); // 輸出: Dec: 255 (十進制) println!("Hex: {:x}", num); // 輸出: Hex: ff (十六進制) println!("Bin: {:b}", num); // 輸出: Bin: 11111111 (二進制) println!("Oct: {:o}", num); // 輸出: Oct: 3ff (八進制)
這些格式說明符可以組合使用,以提供幾乎無限的格式化選項。如果你需要更復(fù)雜的格式化,還可以查閱 Rust 的官方文檔來了解更多細(xì)節(jié)和可用的格式化選項。
二、關(guān)于 fmt 占位符
在 Rust 的格式化字符串中,{:fmt}
是一個占位符,其中 fmt
表示具體的格式說明符。這些格式說明符用于控制如何顯示不同類型的數(shù)據(jù)。以下是一些常用的格式說明符的詳細(xì)清單:
整數(shù)類型
- {:d} 或 {}:十進制表示。
- {:x} 或 {:X}:十六進制表示,小寫 x 為小寫字母,大寫 X 為大寫字母。
- {:o}:八進制表示。
- {:b}:二進制表示。
- {:#b}、{:#o}、{:#x}、{:#X}:帶有前綴的二進制、八進制、十六進制表示(例如 0b1010、0o123)。
- {:0width}:用零填充到指定的寬度。
浮點數(shù)類型
- {:f}:默認(rèn)的小數(shù)表示。
- {:.precision} 或 {:f.precision}:指定小數(shù)點后的精度。
- {:e}:科學(xué)計數(shù)法表示。
- {:E}:科學(xué)計數(shù)法表示,使用大寫 E。
- {:g} 或 {:G}:根據(jù)數(shù)值大小自動選擇 f 或 e/E 表示法。
- {:a} 或 {:A}:十六進制浮點數(shù)表示。
字符串和字符類型
- {:s}:字符串表示。
- {:c}:字符表示。
- {:width}:指定最小字段寬度。
- {:>width}、{:<width}、{:^width}:指定寬度和對齊方式(右對齊、左對齊、居中對齊)。
- {:.width}:截斷到指定寬度。
- {:-}:左對齊,且不使用空格填充。
- {:+}:對于數(shù)值類型,總是在正數(shù)前面顯示加號。
- {: }(包含一個空格):在正數(shù)前面添加空格。
其他
{:?}
:調(diào)試格式,通常用于顯示枚舉和復(fù)合類型的內(nèi)部表示。{:p}
:指針的地址表示。{:#}
:對于某些類型(如浮點數(shù)),使用替代格式。{:width$}
:位置參數(shù),用于指定寬度等屬性的值。
組合使用
格式說明符可以組合使用,例如 {:010.2f}
會將浮點數(shù)格式化為寬度至少為10(不足部分用0填充),且小數(shù)點后有兩位的字符串。
這只是格式說明符的一部分清單,Rust 的格式化系統(tǒng)非常靈活和強大,支持更多的選項和組合。要獲取完整的格式說明符清單和更詳細(xì)的信息,建議查閱 Rust 的官方文檔或相關(guān)資源。
到此這篇關(guān)于Rust 語言的 println! 宏的格式占位符的文章就介紹到這了,更多相關(guān)Rust println! 宏的格式占位符內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Rust 中的閉包之捕獲環(huán)境的匿名函數(shù)
這篇文章介紹了Rust編程語言中的閉包,包括閉包的定義、使用、捕獲環(huán)境中的變量、類型推斷與注解、與函數(shù)的比較以及實際應(yīng)用,閉包具有捕獲環(huán)境、類型推斷和高效性等特性,是Rust中一個非常強大的工具,感興趣的朋友一起看看吧2025-02-02Windows系統(tǒng)下安裝Rust環(huán)境超詳細(xì)教程
這篇文章主要介紹了如何在Windows系統(tǒng)上安裝mingw64和Rust,mingw64是一個輕便的C語言編譯環(huán)境,可以替代Rust默認(rèn)使用的Visual?Studio,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2025-02-02