Result型の返り値を使わないとき

#rust

以下のようにResult型を返すメソッドの返り値を使わないと、コンパイラがunused `std::result::Result` that must be usedのような警告を出す。

process::Command::new("ls").output()

Result型を返すメソッドが失敗したとき、返り値を使わないとそれに気づくことができないため、必ず返り値を使うようにコンパイラが警告してくれる。

返り値を使わないときはexpectを使う。このメソッドはResultOkであれば値を返し、Errであれば引数のメッセージを表示してpanicを起こす。

process::Command::new("ls").output().expect("failed");

あるいは、?オペレータを使ってエラーをそのまま呼び出し元に転送することもできる。

fn execute_ls() -> io::Result<()> {
    process::Command::new("ls").output()?;
    Ok(())
}