当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Rust format_args用法及代码示例


本文简要介绍rust语言中 Macro core::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! 与其派生的宏不同,它避免了堆分配。

您可以在 DebugDisplay 上下文中使用 format_args! 返回的 fmt::Arguments 值,如下所示。该示例还显示 DebugDisplay 格式为相同的内容: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-lang.org大神的英文原创作品 Macro core::format_args。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。