我試圖學習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