Macro core::format_args
1.0.0 · source · macro_rules! format_args { ($fmt:expr) => { ... }; ($fmt:expr, $($args:tt)*) => { ... }; }
Expand description
构造其他字符串格式宏的参数。
此宏函数通过为每个传递的其他参数采用包含 {}
的格式字符串字面量来实现。
format_args!
准备附加参数以确保输出可以解释为字符串,并将参数规范化为单一类型。
可以将实现 Display
trait 的任何值传递给 format_args!
,也可以将任何 Debug
实现的形式传递给格式化字符串中的 {:?}
。
该宏产生 fmt::Arguments
类型的值。可以将该值传递到 std::fmt
中的宏,以执行有用的重定向。
所有其他格式化宏 (format!
,write!
,println!
等) 都通过此代理。
format_args!
与其派生的宏不同,它避免了堆分配。
您可以使用 format_args!
在 Debug
和 Display
上下文中返回的 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);
Run有关更多信息,请参见 std::fmt
中的文档。
Examples
use std::fmt;
let s = fmt::format(format_args!("hello {}", "world"));
assert_eq!(s, format!("hello {}", "world"));
Run