Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法为Rust中的结构执行显示_Rust - Fatal编程技术网

无法为Rust中的结构执行显示

无法为Rust中的结构执行显示,rust,Rust,我一直在跟踪,无法实现结构的调试输出(Matrix,在下面的代码中) 首先,这里是版本 操作系统:macOS 11 锈迹:锈迹1.49.0(e1884a8e3 2020-12-29) 货物:货物1.49.0(d00d64df9 2020-12-05) 当我试着做“元组”步骤的第一个活动中被要求做的事情时 “在上述示例中,将fmt::Display trait添加到矩阵结构中” 我通过Cargo创建了一个新的生锈项目,并创建了这样的结构 $ROOT ├- 货舱 └- src ├- 梅因 └-

我一直在跟踪,无法实现结构的调试输出(
Matrix
,在下面的代码中)

首先,这里是版本

  • 操作系统:macOS 11
  • 锈迹:锈迹1.49.0(e1884a8e3 2020-12-29)
  • 货物:货物1.49.0(d00d64df9 2020-12-05)
当我试着做“元组”步骤的第一个活动中被要求做的事情时

“在上述示例中,将fmt::Display trait添加到矩阵结构中”

我通过Cargo创建了一个新的生锈项目,并创建了这样的结构

$ROOT
├- 货舱
└- src
├- 梅因
└- mytuples2.rs

但无法产生以下输出

((1.1) (1.2)
 (2.1) (2.2))
我做错了什么?请帮帮我,因为我是新手。谢谢


PS:相反,它写的是
矩阵(1.1,1.2,2.1,2.2)

尽管是我的错,我还是要回答它

在结构定义之前删除
#[派生(调试)]
,并将impl更改为
impl fmt::Debug for Matrix{
(与
impl fmt::Display for Matrix{
)解决了此问题


无需将
“{:?}”
更改为
“{}”
,因为其目的是以调试格式打印结构。

“{:?}”
不使用
显示它使用的是
调试
,请尝试
“{}”
谢谢@kmdreko,你让我意识到了一些东西。请查看答案。这也很有效,很高兴我能帮上忙:)
// 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))