21/08/07 13:32:55.26 Xj8Oc6zx.net
>>537
Result<T, Error>のErrorの部分の型が違うと?演算子は使えない
struct MyError; // 独自エラー型
fn task() -> Result<(), MyError> {
let file = std::fs::File::open("foo.txt")?; // std::io::Error ≠ MyError だから駄目
// ...
Ok(())
}
ただ型が違ってもFromを実装することで?演算子を使えるようになるのは知っておくと便利
// ↓があると↑はコンパイルできる
impl From<std::io::Error> for MyError {
fn from(error: std::io::Error)-> MyError {
MyError
}
}