Option

JĂĄ vimos algum uso de Option<T>. Ele armazena um valor do tipo T ou nada. Por exemplo, String::find retorna um Option<usize>.

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Speaker Notes

This slide should take about 10 minutes.
  • Option Ă© amplamente utilizado, nĂŁo apenas na biblioteca padrĂŁo.
  • unwrap retornarĂĄ o valor em um Option, ou entrarĂĄ em pĂąnico. expect Ă© semelhante, mas recebe uma mensagem de erro.
    • VocĂȘ pode entrar em pĂąnico em None, mas nĂŁo pode “acidentalmente” esquecer de verificar None.
    • É comum unwrap/expect em todos os lugares ao hackear algo, mas o cĂłdigo de produção normalmente lida com None de uma maneira mais elegante.
  • A otimização de nicho significa que Option<T> muitas vezes tem o mesmo tamanho na memĂłria que T.