Option y Result

Los tipos representan datos opcionales:

fn main() {
    let numbers = vec![10, 20, 30];
    let first: Option<&i8> = numbers.first();
    println!("first: {first:?}");

    let idx: Result<usize, usize> = numbers.binary_search(&10);
    println!("idx: {idx:?}");
}
  • Option y Result se usan mucho, no solo en la biblioteca estándar.
  • Option<&T> no usa espacio adicional en comparación con &T.
  • Result es el tipo estándar para implementar la gestión de errores, tal y como veremos el día 3.
  • binary_search devuelve Result<usize, usize>.
    • Si se encuentra, Result::Ok contiene el índice donde se halla el elemento.
    • De lo contrario, Result::Err contendrá el índice donde se debe insertar dicho elemento.