2
閱讀防鏽教程中,我發現下面的代碼片段:鏽匹配表達式類型不確定?
let f = File::open("hello.txt");
let mut f = match f {
Ok(file) => file,
Err(e) => return Err(e)
};
這似乎是f
可以有Result<_, _>
類型的值(如果f == Err(e)
)或_
類型的值(即,無論何種類型file
恰好是)。
那麼這是否意味着Rust中的匹配表達式是類型不確定的?
我覺得'返回Err(e)'沒有設置'f'的值,它打破了'match'並從函數返回一個值。 – Blorgbeard
@LukasKalbertodt:如果'f'具有'std :: fs :: File'類型,那麼'f'可能具有'std :: fs :: File'類型,因此不是'Result <_, _>'。類型不確定意味着'f'可能有兩種不相等的類型之一。 – George