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áveisarrow-up-right (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 ArgumentNullExceptionarrow-up-right.

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 Maybearrow-up-right, 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 Optionarrow-up-right e do módulo Optionarrow-up-right.

Last updated

Was this helpful?