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