Option e Result
Os tipos representam dados opcionais:
fn main() { let numbers = vec![10, 20, 30]; let first: Option<&i8> = numbers.first(); println!("primeiro: {first:?}"); let idx: Result<usize, usize> = numbers.binary_search(&10); println!("ind: {idx:?}"); }
OptioneResultsão amplamente usados não apenas na biblioteca padrão.Option<&T>não tem nenhum custo adicional de espaço em comparação com&T.Resulté o tipo padrão para implementar tratamento de erros, como veremos no Dia 3.binary_searchretornaResult<usize, usize>.- Se encontrado,
Result::Okcontém o índice onde o elemento foi encontrado. - Caso contrário,
Result::Errcontém o índice onde tal elemento deve ser inserido.
- Se encontrado,