我有这样的代码:
use std::fmt::Write;
fn main() {
let mut side_str = String::new();
write!(&mut side_str, "world").unwrap();
println!(
"hello_{:?}_",
format!("{:?}", side_str),
);
}
我在输出中得到了引号。我该如何以简洁的方式编写它以不包含引号?
我有这样的代码:
use std::fmt::Write;
fn main() {
let mut side_str = String::new();
write!(&mut side_str, "world").unwrap();
println!(
"hello_{:?}_",
format!("{:?}", side_str),
);
}
我在输出中得到了引号。我该如何以简洁的方式编写它以不包含引号?
占位符
{:?}
使用Debug
特征来格式化值。对于String
s,调试实现包括引号和转义符。您的代码使用特征对字符串进行两次格式化Debug
,因此您会得到两组引号。world -> "world" -> "\"world\""
如果您不想要任何引号,请
{}
使用特征来格式化一次Display
。如果您想要一组引号,请使用{:?}
一次。