Valores Opcionais

Os valores opcionais são uma maneira de representar dados incertos, nem sempre é possível termos certeza do resultado de alguma operação.

Estes valores geralmente são oferecidos como uma nova proposta ao invés dos tipos anuláveis (nullables).

Os valores nulos são problemáticos por se disfarçarem de um valor real, devido ao fluxo de um sistema, ocasionalmente pode ocorrer um acesso à um método ou propriedade de um objeto contendo o valor nulo, isso causa a exceção ArgumentNullException.

Valores opcionais também são uma forma de encapsular um dado, sem permitir que o desenvolvedor acesse esta informação quando ela não existir.

Em algumas linguagens como Haskell, por exemplo, o tipo opcional é representado pelo tipo Maybe, apesar de possuir um nome diferente, o conceito por trás é o mesmo.

Um valor opcional pode estar em um dos dois estados possíveis:

  • Contendo alguma coisa;

  • Não contendo nada.

E na implementação proposta nesta biblioteca, só é possível acessar o valor de um tipo opcional quando ele encontrar-se no estado: "Contendo alguma coisa".

Como você deve ter notado, a ideia dos tipos anuláveis e dos tipo opcional é bastante similar, mas de forma geral o tipo opcional é mais poderoso, evitando exceções e permitindo criar valores opcionais inclusive para tipos baseado em referência e não somente para tipos primitivos.

As implementações deste conceito são realizadas em duas etapas: através do tipo Option e do módulo Option.

Last updated