如何使用其所有(嵌套)类型信息打印出变量?

时间:2014-05-28 14:10:39

标签: types rust

鉴于Rust的当前状态及其生态系统(IDE支持,文档等),我发现很难探索该语言,因为我现在从未如何在不查看源代码的情况下对类型进行良好的概述。 / p>

我想知道是否有一个print命令 - 给定任何变量作为输入 - 打印出具有所有嵌套属性(如果有)的类型的漂亮表示。

这样的事情存在吗?

1 个答案:

答案 0 :(得分:2)

如果结构中使用的所有已使用类型都具有#[derive(Debug)],则只能获得输出。

E.g。

#[derive(Debug)]
struct X {
    a: Nested,
    b: i32,
}

#[derive(Debug)]
struct Nested {
    c: u32,
    d: DeeplyNested,
}

#[derive(Debug)]
struct DeeplyNested {
    e: &'static str,
}

fn main() {
    let x = X {
        a: Nested {
            c: 8,
            d: DeeplyNested { e: "fun" },
        },
        b: -3,
    };
    println!("{:#?}", x);
}