Rust?語言println!?宏的格式占位符詳解
一、占位符
println! 宏的占位符主要基于 Rust 的格式化語法,它支持多種占位符格式來插入和格式化不同的值。除了 {} 和 {:?} 之外,還有其他幾種形式:
- 基本占位符
{}:用于插入任何實現(xiàn)了Displaytrait 的類型的值。 - 調試占位符
{:?}:用于插入任何實現(xiàn)了Debugtrait 的類型的值,通常用于調試目的,因為它會提供更詳細的輸出。 - 格式說明符
{:fmt}:其中fmt是格式字符串,允許你更詳細地控制值的輸出。例如,你可以控制整數(shù)的基數(shù)({:x}表示十六進制),浮點數(shù)的精度({:.2f}表示兩位小數(shù)),字符串的寬度和對齊方式等。
let num = 255;
println!("Hex: {:x}", num); // 輸出: Hex: ff4,命名參數(shù) {name}:在復雜的格式化字符串中,你可以給占位符命名,并在后面通過 format! 宏的參數(shù)列表提供值。
let name = "Alice";
let age = 30;
println!("Name: {name}, Age: {age}", name=name, age=age);
// 輸出: Name: Alice, Age: 305.位置參數(shù) {0}、{1} 等:你也可以通過位置來引用 format! 宏參數(shù)列表中的值。位置從 0 開始。
let name = "Alice";
let age = 30;
println!("Name: {0}, Age: {1}", name, age);
// 輸出: Name: Alice, Age: 306.寬度、精度和填充:你可以在格式說明符中指定字段的寬度、精度和填充字符。
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 (八進制)這些格式說明符可以組合使用,以提供幾乎無限的格式化選項。如果你需要更復雜的格式化,還可以查閱 Rust 的官方文檔來了解更多細節(jié)和可用的格式化選項。
二、關于 fmt 占位符
在 Rust 的格式化字符串中,{:fmt} 是一個占位符,其中 fmt 表示具體的格式說明符。這些格式說明符用于控制如何顯示不同類型的數(shù)據。以下是一些常用的格式說明符的詳細清單:
整數(shù)類型
- {:d} 或 {}:十進制表示。
- {:x} 或 {:X}:十六進制表示,小寫 x 為小寫字母,大寫 X 為大寫字母。
- {:o}:八進制表示。
- {:b}:二進制表示。
- {:#b}、{:#o}、{:#x}、{:#X}:帶有前綴的二進制、八進制、十六進制表示(例如 0b1010、0o123)。
- {:0width}:用零填充到指定的寬度。
浮點數(shù)類型
- {:f}:默認的小數(shù)表示。
- {:.precision} 或 {:f.precision}:指定小數(shù)點后的精度。
- {:e}:科學計數(shù)法表示。
- {:E}:科學計數(shù)法表示,使用大寫 E。
- {:g} 或 {:G}:根據數(shù)值大小自動選擇 f 或 e/E 表示法。
- {:a} 或 {:A}:十六進制浮點數(shù)表示。
字符串和字符類型
- {:s}:字符串表示。
- {:c}:字符表示。
- {:width}:指定最小字段寬度。
- {:>width}、{:<width}、{:^width}:指定寬度和對齊方式(右對齊、左對齊、居中對齊)。
- {:.width}:截斷到指定寬度。
- {:-}:左對齊,且不使用空格填充。
- {:+}:對于數(shù)值類型,總是在正數(shù)前面顯示加號。
- {: }(包含一個空格):在正數(shù)前面添加空格。
其他
{:?}:調試格式,通常用于顯示枚舉和復合類型的內部表示。{:p}:指針的地址表示。{:#}:對于某些類型(如浮點數(shù)),使用替代格式。{:width$}:位置參數(shù),用于指定寬度等屬性的值。
組合使用
格式說明符可以組合使用,例如 {:010.2f} 會將浮點數(shù)格式化為寬度至少為10(不足部分用0填充),且小數(shù)點后有兩位的字符串。
這只是格式說明符的一部分清單,Rust 的格式化系統(tǒng)非常靈活和強大,支持更多的選項和組合。要獲取完整的格式說明符清單和更詳細的信息,建議查閱 Rust 的官方文檔或相關資源。
到此這篇關于Rust 語言的 println! 宏的格式占位符的文章就介紹到這了,更多相關Rust println! 宏的格式占位符內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
詳解Rust中三種循環(huán)(loop,while,for)的使用
我們常常需要重復執(zhí)行同一段代碼,針對這種場景,Rust?提供了多種循環(huán)(loop)工具。一個循環(huán)會執(zhí)行循環(huán)體中的代碼直到結尾,并緊接著回到開頭繼續(xù)執(zhí)行。而?Rust?提供了?3?種循環(huán):loop、while?和?for,下面逐一講解2022-09-09
Rust中用enum實現(xiàn)多參數(shù)Hook機制完整代碼
在 Rust 中,如果想為enum實現(xiàn)一個帶多參數(shù)的 Hook 機制,可以結合模式匹配和枚舉來處理,這種方式可以擴展到支持不同類型的輸入參數(shù)和邏輯處理,下面通過示例代碼介紹Rust中用enum實現(xiàn)多參數(shù)Hook機制,感興趣的朋友一起看看吧2024-12-12
Rust并發(fā)編程之使用消息傳遞進行線程間數(shù)據共享方式
文章介紹了Rust中的通道(channel)概念,包括通道的基本概念、創(chuàng)建并使用通道、通道與所有權、發(fā)送多個消息以及多發(fā)送端,通道提供了一種線程間安全的通信機制,通過所有權規(guī)則確保數(shù)據安全,并且支持多生產者單消費者架構2025-02-02
解讀Rust的Rc<T>:實現(xiàn)多所有權的智能指針方式
Rc<T> 是 Rust 中用于多所有權的引用計數(shù)類型,通過增加引用計數(shù)來管理共享數(shù)據,只有當最后一個引用離開作用域時,數(shù)據才會被釋放,Rc<T> 適用于單線程環(huán)境,并且只允許不可變共享數(shù)據;需要可變共享時應考慮使用 RefCell<T> 或其他解決方案2025-02-02
MacBook Pro安裝rust編程環(huán)境的過程
rustup是一個用于管理Rust版本和工具鏈的工具,這篇文章主要介紹了MacBook Pro安裝rust編程環(huán)境的過程,感興趣的朋友跟隨小編一起看看吧2024-02-02

