本文簡要介紹rust語言中 Macro std::format_args
的用法。
用法
macro_rules! format_args {
($fmt : expr) => { ... };
($fmt : expr, $($args : tt) *) => { ... };
}
為其他字符串格式化宏構造參數。
該宏通過為每個傳遞的附加參數獲取包含{}
的格式化字符串文字來發揮作用。 format_args!
準備附加參數以確保輸出可以解釋為字符串並將參數規範化為單一類型。任何實現 Display
特征的值都可以傳遞給 format_args!
,任何 Debug
實現都可以傳遞給格式化字符串中的 {:?}
。
這個宏產生一個類型為 fmt::Arguments
的值。該值可以傳遞給 std::fmt
中的宏以執行有用的重定向。所有其他格式化宏( format!
, write!
, println!
,等等)都通過這個代理。 format_args!
與其派生的宏不同,它避免了堆分配。
您可以在 Debug
和 Display
上下文中使用 format_args!
返回的 fmt::Arguments
值,如下所示。該示例還顯示 Debug
和 Display
格式為相同的內容:format_args!
中的內插格式字符串。
let debug = format!("{:?}", format_args!("{} foo {:?}", 1, 2));
let display = format!("{}", format_args!("{} foo {:?}", 1, 2));
assert_eq!("1 foo 2", display);
assert_eq!(display, debug);
有關詳細信息,請參閱 std::fmt
中的文檔。
例子
use std::fmt;
let s = fmt::format(format_args!("hello {}", "world"));
assert_eq!(s, format!("hello {}", "world"));
相關用法
- Rust format用法及代碼示例
- Rust forget用法及代碼示例
- Rust f32.exp用法及代碼示例
- Rust f32.hypot用法及代碼示例
- Rust f32.minimum用法及代碼示例
- Rust f64.signum用法及代碼示例
- Rust f64.sqrt用法及代碼示例
- Rust f32.sqrt用法及代碼示例
- Rust f32.abs_sub用法及代碼示例
- Rust f64.is_finite用法及代碼示例
- Rust f32.cos用法及代碼示例
- Rust f32.is_sign_positive用法及代碼示例
- Rust f32.log10用法及代碼示例
- Rust f64.round用法及代碼示例
- Rust f32.total_cmp用法及代碼示例
- Rust f64.div_euclid用法及代碼示例
- Rust f64.hypot用法及代碼示例
- Rust f32.from_ne_bytes用法及代碼示例
- Rust f32.recip用法及代碼示例
- Rust f64.floor用法及代碼示例
- Rust f64.log用法及代碼示例
- Rust from_u32_unchecked用法及代碼示例
- Rust f64.asinh用法及代碼示例
- Rust f64.classify用法及代碼示例
- Rust f32.sinh用法及代碼示例
注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 Macro std::format_args。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。