F# Opções
O objetivo deste artigo é fornecer uma visão geral abrangente do tipo F# Option . Este artigo abordará o processo de criação e trabalho com valores de opção, incluindo como você pode lidar com segurança com valores ausentes, bem como a maneira pela qual você pode extrair valores de tipos de opção por meio de correspondência de padrão. O módulo Opção permite que você gerencie valores de Opção de forma eficaz e funcione como um usuário com valores de opção.
F# usa o tipo de opção quando não há valor a ser atribuído a uma variável ou função nos cálculos. Os cálculos podem usar tipos de opção para representar valores opcionais nos cálculos. Os valores podem ser Some(x) ou None.
Por exemplo, se alguém executa uma função de divisão em uma situação normal, pode retornar um valor, mas se o denominador for zero, pode gerar uma exceção. Quando as opções forem usadas aqui, será mais fácil determinar se a função foi bem-sucedida ou falhou.
O tipo subjacente de uma opção determina se ela contém um valor do tipo ou não contém nenhum valor.
Usos das opções do F#
Como exemplo, vejamos uma função de divisão. Isso é explicado no programa a seguir.
Escreveremos uma função chamada divisão e informaremos que existem dois parâmetros: 40 e 2.
Example:
Após a execução do exemplo, a saída será a seguinte:
Result of division is: 20
Se colocarmos 0 no segundo argumento, teremos uma exceção:
Example:
O programa lançará o seguinte exemplo:
Unhandled Exception: System.DivideByZeroException: Division by zero
Podemos usar tipos de opção nesses casos para inferir se a operação foi bem-sucedida ou não, retornando Some (valor) quando foi bem-sucedida ou não.
Como exemplo, vamos dar uma olhada em quais opções podem ser usadas para:
Example:
Ele irá produzir como:
Result of division is: Some 20
Propriedades e métodos da opção
Há várias propriedades e métodos disponíveis no tipo de opção, incluindo:
Propriedade ou método | Tipo | Visão geral |
Nenhum | opção T | Um valor de opção definido como o valor None pode ser criado em uma propriedade estática . |
não é nenhum | bool | Um valor true será retornado se a opção tiver o valor None. |
É algum | bool | Quando o valor da opção não é None, o valor retornado por esta função é true. |
Alguns | opção T | Membros estáticos criam opções que não são None, ao contrário de membros estáticos que criam opções que são None. |
Valor | T | Um NullReferenceException é lançado se o valor subjacente for None , caso contrário, o valor subjacente será retornado. |
Encontrando Elementos Através da Opção
Este método permite encontrar elementos de uma lista com base no tipo de opção disponível:
Example:
A saída do exemplo acima é a seguinte:
Found element: 4
Verificação de Número Positivo
Abaixo está um exemplo de verificação se o número é positivo ou não:
Example:
A saída do programa acima é:
The value is: null
soma dos elementos
Este exemplo soma todos os elementos de opção na lista:
Example:
Isso imprimirá a soma de todos os elementos:
Sum of numbers are: 22
Exemplo de Explicação
Este código F# define uma lista chamada num que contém uma mistura de valores Some e None. Em seguida, o código calcula a soma dos valores não nulos na lista e imprime o resultado no console.
Uma lista chamada num contém cinco elementos. O primeiro, segundo e quarto elementos são Alguns valores contendo os números 10, 5 e 7, respectivamente.
O terceiro e o quinto elementos são valores None, representando dados ausentes ou nulos.
As funções List.choose e List.sum calculam a soma dos valores não nulos na lista num.
A função List.choose é uma função de ordem superior que recebe uma lista e uma função como entrada. A função é aplicada a cada elemento da lista e a lista resultante contém apenas os valores retornados pela função como alguns valores. Nesse caso, a função passada para List.choose é a função identity, que simplesmente retorna o valor de entrada. Como os valores Nenhum são excluídos pela função List.choose, a lista resultante contém apenas alguns valores da lista original.
A lista resultante de Alguns valores é então passada para a função List.sum , que calcula a soma dos elementos na lista.
Finalmente, imprime a soma de todos os números.
Verificação do número correto
Este programa verifica se o número é 44 ou não usando diferentes propriedades de opção, se for, imprimirá verdadeiro, caso contrário, imprimirá falso e se não houver valor, retornará nulo.
Example:
A saída será como:
true false false
Assine nosso boletim informativo abaixo para se manter atualizado com todos os desenvolvimentos mais recentes da linguagem de programação funcional F# e aprender mais sobre a linguagem.