我不知道如何命名这个问题,因为我是 Rust 新手,所以请随意提出编辑建议。
我有两个结构。一个是Jobstruct,其中包含一些数字,例如工作需要多长时间等。另一个是 a JobSequence,其中包含sVec()的a Job。
我实现了 的fmt::Display特征,Job以便它以这种方式打印出它的三个数字:
(10, 12, 43)
Run Code Online (Sandbox Code Playgroud)
现在,我想实现fmt::Display该结构的特征JobSequence,以便它迭代Job向量中的每个并以这种方式显示它们:
(0, 10, 5)
(30, 10, 5)
(0, 10, 5)
(0, 10, 5)
(0, 10, 5)
Run Code Online (Sandbox Code Playgroud)
我认为(?)我应该重用该Job结构的已实现特征并使用它,以便它在某种程度上简单地将它们打印为半列表。这是我目前的实现,但我有一种草率的感觉,有更好的方法:
(10, 12, 43)
Run Code Online (Sandbox Code Playgroud)
您可以通过使用格式字符串Display直接传递 impl 来重复使用它:write!{}
impl fmt::Display for JobSequence {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
for i in &self.job_sequence {
writeln!(f, "{}", i)?;
}
Ok(())
}
}
Run Code Online (Sandbox Code Playgroud)
您可以在文档中阅读有关格式化宏使用的不同特征的更多信息。(普通{}使用std::fmt::Display。)