Lire un tutoriel Rust j'ai trouvé l'extrait de code suivant:Les expressions de correspondance de rouille sont-elles de type indéterminé?
let f = File::open("hello.txt");
let mut f = match f {
Ok(file) => file,
Err(e) => return Err(e)
};
Cela semble que f
pourrait avoir la valeur du type Result<_, _>
(si f == Err(e)
) ou une valeur de type _
(c.-à, quel que soit le type file
arrive à être).
Cela signifie-t-il que les expressions de correspondance dans Rust sont de type indéterminé?
Je pense que 'return Err (e)' ne définit pas la valeur de 'f', il sort de' match' et renvoie une valeur de la fonction. – Blorgbeard
@LukasKalbertodt: Si 'f' a le type' std :: fs :: File', alors 'f' pourrait avoir le type' std :: fs :: File' donc pas 'Result <_, _>'. Le type indéterminé signifie que 'f' pourrait avoir l'un des deux types inégaux. – George