我试图学习Rust,但是当我为我的一个类型实现fmt::Display
特征时,我面临着一个困难。我想要做这样的事情:传播错误的正确方法是什么?
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "(");
some_helper_function(self.t1, self.ctx, f);
write!(f, " ");
some_helper_function(self.t2, self.ctx, f);
write!(f, ")")
}
所有这些函数返回fmt::Result
,但这会被忽略。向上传播错误结果的正确方法是什么?
*的Err对象* - 迂腐,'Err'是'Result'枚举的变体*。 – Shepmaster
'try!'是[不再推荐](https://rustbyexample.com/hello/print/print_display/testcase_list.html)的方式。使用'?'来代替:即'write!(f,“(”)?;' – tolitius