Types 如何打印变量及其所有(嵌套)类型信息?

Types 如何打印变量及其所有(嵌套)类型信息?,types,rust,Types,Rust,考虑到当前的锈迹和它的生态系统(IDE支持、文档等),我发现很难探索这种语言,因为我现在从来都不知道如何在不查看源代码的情况下获得类型的良好概述 我想知道是否有一个print命令,在给定任何变量作为输入的情况下,该命令会打印出一个很好的类型表示,其中包含所有嵌套属性(如果有) 这样的东西存在吗?只有在结构中使用的所有类型都具有#[派生(调试)]时,才能获得输出 例如 啊,明白了。关于如何探索这门语言,你还有其他的建议吗?赛车手这似乎只适用于Rust本身,而不适用于外部库,如Rust http对吗

考虑到当前的锈迹和它的生态系统(IDE支持、文档等),我发现很难探索这种语言,因为我现在从来都不知道如何在不查看源代码的情况下获得类型的良好概述

我想知道是否有一个
print
命令,在给定任何变量作为输入的情况下,该命令会打印出一个很好的类型表示,其中包含所有嵌套属性(如果有)


这样的东西存在吗?

只有在结构中使用的所有类型都具有
#[派生(调试)]
时,才能获得输出

例如


啊,明白了。关于如何探索这门语言,你还有其他的建议吗?赛车手这似乎只适用于Rust本身,而不适用于外部库,如
Rust http
对吗?您可以使用
debug!(“{}”,exp)
查看它是如何执行的。除非调试模式打开(并且在测试中调试模式关闭),否则它不会运行。除此之外,只需查看
rust
servo
代码库即可获得示例。看,你的意思是什么-探索语言?为什么在运行时需要这些类型来“探索”它?大多数数据结构都是抽象的,您不应该知道它们的内部结构。当您需要了解它提供的一些结构和操作时,您通常会在中查找它。
#[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);
}