Vyacheslav Odinokov Asked:2020-02-06 13:39:26 +0000 UTC2020-02-06 13:39:26 +0000 UTC 2020-02-06 13:39:26 +0000 UTC 如何在 Rust 中将任何类型的数据打印到控制台? 772 有没有等效var_dump或类似的东西? 或任何其他用于调试和查看我在这个或那个函数中得到的东西等的类似物。 rust 2 个回答 Voted Best Answer sanmai 2020-02-06T14:16:32Z2020-02-06T14:16:32Z 您可以使用宏dbg: use std::collections::HashMap; fn main() { let mut hash = HashMap::new(); hash.insert("Test", "123"); dbg!(hash); } 输出: [src/main.rs:6] hash = { "Test": "123" } 另请参阅此答案。 Fat-Zer 2020-02-06T14:15:25Z2020-02-06T14:15:25Z 不完全是“任何”,但几乎是:要简单地输出任意类型进行调试,您需要使其成为 trait 的继承者Debug,之后可以使用普通函数和说明符轻松格式化{:?}: #[derive(Debug)] struct Point { x: i32, y: i32, } let origin = Point { x: 0, y: 0 }; println!("The origin is: {:?}", origin); // => The origin is: Point { x: 0, y: 0 } 对于所有标准类型,以及几乎所有有意义的公共库类型,都定义了这个特征。如果没有,或者默认定义不适合您,那么您可以像这样手动执行: impl fmt::Debug for Point { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "Point {{ x: {}, y: {} }}", self.x, self.y) } } 另请参阅:通过示例在 Rust 中调试,字符串格式。
您可以使用宏
dbg:输出:
另请参阅此答案。
不完全是“任何”,但几乎是:要简单地输出任意类型进行调试,您需要使其成为 trait 的继承者
Debug,之后可以使用普通函数和说明符轻松格式化{:?}:对于所有标准类型,以及几乎所有有意义的公共库类型,都定义了这个特征。如果没有,或者默认定义不适合您,那么您可以像这样手动执行:
另请参阅:通过示例在 Rust 中调试,字符串格式。