我不知道如何命名这个问题,因为我是 Rust 新手,所以请随意提出编辑建议。
我有两个结构。一个是Job
struct,其中包含一些数字,例如工作需要多长时间等。另一个是 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
。)
归档时间: |
|
查看次数: |
2069 次 |
最近记录: |