No Rust, você não pode usar a try!()
macro com Option
tipos:
let last = try!(vec![1,2,3].last());
erro: tipos incompatíveis:
esperadocore::option::Option<&_>
,
encontradocore::result::Result<_, _>
mas você pode facilmente converter Option
paraResult
para fazê-lo funcionar:
struct MyErrorType;
let last = try!(vec![1,2,3].last().ok_or(MyErrorType)); // strings are convertible to errors, so you can use them too.
Basta adicionar ok_or()
à expressão e fornecer uma instância de um erro que deve ser usado no lugar de None
.
Também funciona com ?
operador.