【发布时间】:2021-01-21 02:11:05
【问题描述】:
我一直在关注Rust by Example,但无法实现结构的调试输出(下面代码中的Matrix)。
首先,这是版本;
- 操作系统:macOS 11
- Rust:rustc 1.49.0 (e1884a8e3 2020-12-29)
- 货物:货物 1.49.0 (d00d64df9 2020-12-05)
当我尝试执行“元组”步骤的"Activity" section 的第一个活动时所要求的内容时;
"将 fmt::Display trait 添加到上例中的 Matrix 结构中"
我通过 Cargo 创建了一个新的 Rust 项目并创建了这样的结构;
$ROOT
├- Cargo.toml
└- src
├- main.rs
└- mytuples2.rs
// src/main.rs
mod mytuples2;
fn main() {
mytuples2::run();
}
和
// src/mytuples2.rs
use std::fmt;
// The following struct is for the activity.
#[derive(Debug)]
struct Matrix(f32, f32, f32, f32);
impl fmt::Display for Matrix {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "(({}) ({})\n ({})({}))", self.0, self.1, self.2, self.3)
}
}
pub fn run() {
let matrix = Matrix(1.1, 1.2, 2.1, 2.2);
println!("{:?}", matrix);
}
但无法产生以下输出;
((1.1) (1.2)
(2.1) (2.2))
我做错了什么?请帮助我,因为我是新手。谢谢。
PS:而是写Matrix(1.1, 1.2, 2.1, 2.2)
【问题讨论】:
-
"{:?}"不使用Display它使用Debug,试试"{}" -
谢谢@kmdreko,你让我意识到了一些事情。请看答案。
标签: rust