为什么要dbg!和println!(“ {:?}”)显示不同的输出?

时间:2019-07-26 18:32:25

标签: rust

我以为dbg!(x)println!("{:?}", x)都将打印相同的字符串,因为{:?}用于调试输出,对吧?

如果我没记错的话,为什么我们看到这个结果,一个显示在一行上,而另一个显示在列表中?

fn main() {
    let x: Vec<u32> = (0..10).collect();
    println!("{:?}", x[0..1].to_vec());
    dbg!(x[0..1].to_vec());
}
[src/main.rs:4] x[0..1].to_vec() = [
    0,
]
[0]

Playground link

1 个答案:

答案 0 :(得分:4)

dbg! does not use {:?} but {:#?}

extra #意味着dbg!将使用替代格式,该格式使用更多的空格和换行符,而常规格式则更密集。