fn main() {
println!("{:=^50}", "Stuff");
println!("{:=^50}", format_args!("Stuff {}", 42));
}
Run Code Online (Sandbox Code Playgroud)
人们可能会认为它没有理由不起作用,但实际上,它不起作用:
======================Stuff=======================
Stuff 42
Run Code Online (Sandbox Code Playgroud)
游乐场。
当然,我可以自己做,但是有内置的方法可以做到这一点吗?
fn main() {
println!("{:=^50}", "Stuff");
println!("{:=^50}", format!("Stuff {}", 42));
}
Run Code Online (Sandbox Code Playgroud)
输出:
======================Stuff=======================
=====================Stuff 42=====================
Run Code Online (Sandbox Code Playgroud)
尝试这个:
fn main() {
println!("{:=^50}", "Stuff");
println!("{:=^50}", std::fmt::format(format_args!("Stuff {}", 42)));
}
Run Code Online (Sandbox Code Playgroud)
输出:
======================Stuff=======================
=====================Stuff 42=====================
Run Code Online (Sandbox Code Playgroud)
请参阅format_args:
该宏生成 fmt::Arguments 类型的值。该值可以传递给 std::fmt 中的宏以执行有用的重定向。所有其他格式化宏(format!、write!、println!等)都通过此代理。format_args! 与其派生宏不同,它避免了堆分配。
论据:
格式参数!宏将安全地创建此结构的实例。该宏在编译时验证格式字符串,以便可以安全地执行写入和格式化函数的使用。
请参阅显示参数:
impl Display for Arguments<'_> {
fn fmt(&self, fmt: &mut Formatter<'_>) -> Result {
write(fmt.buf, *self)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
868 次 |
| 最近记录: |