始终从函数返回 Result<T, E> 是一个好习惯吗?

Sai*_*noW 6 rust

我意识到Result当我需要从函数返回某些内容时我总是使用它。

这在良好的 Rust 开发中是常见的吗?我是否还应该Resultvoid可能遇到错误的函数返回 a (如Result<(), Error>)?

小智 12

AResult<T, E>应该始终由“容易出错”的函数返回,但不一定是所有函数。

std::fs::read_to_string()例如,Result由于可能发生各种错误,因此返回 a。vec.len()另一方面,保证不会引发错误(因此直接返回 ausize而不是 a Result)。

至于你的第二个问题,你是绝对正确的:容易出错(但不返回值)的函数应该返回一个Result<(), Error>.

  • 把“容易出错”换成“容易犯错”,这样就更清晰了。 (8认同)