F# Enumerações

Enumerações F# são conjuntos de constantes de valor que podem ser nomeados de diferentes maneiras.

F# Enumeration é um dos tipos especiais de dados , que representa um tipo fixo de conjunto de valores nomeados que são armazenados dentro.

Um conjunto de enumerações pode ser pensado como uma maneira fácil e concisa de mapear e manipular conjuntos de valores com um domínio claramente definido e limitado, definindo e trabalhando com eles.

Você aprenderá sobre as várias maneiras pelas quais as enumerações do F# podem ser utilizadas para melhorar a legibilidade, manutenção e segurança de tipo do seu código. Aproveitando os benefícios das enumerações, você pode escrever um código mais robusto e sem erros, mais fácil de entender e manter.



Definir Enumerações F#

Uma enumeração em F# é definida usando a palavra-chave type seguida pelo nome da enumeração e os valores que ela contém.

Os valores de uma enumeração são definidos usando o | operador e são separados por ponto e vírgula.

Uma enumeração pode ser declarada da seguinte maneira:

type enum-name =
| value1 = integer-literal1
| value2 = integer-literal2
...

O exemplo a seguir ilustra como as enumerações podem ser usadas para representar dados:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// Declaration of an enumeration.
type DayOfWeek =
| Mon
| Tues
| Wed
| Thurs
| Fri
| Sat
| Sun
let printDayOfWeek (day: DayOfWeek) =
match day with
| Mon -> "Monday"
| Tues -> "Tuesday"
| Wed -> "Wednesday"
| Thurs -> "Thursday"
| Fri -> "Friday"
| Sat -> "Saturday"
| Sun -> "Sunday"
// Use of an enumeration.
let weekend1 : DayOfWeek = DayOfWeek.Sat
let weekend2 : DayOfWeek = DayOfWeek.Sun
let weekDay1 : DayOfWeek = DayOfWeek.Mon
let weekDay2 : DayOfWeek = DayOfWeek.Tues
let weekDay3 : DayOfWeek = DayOfWeek.Wed
let weekDay4 : DayOfWeek = DayOfWeek.Thurs
let weekDay5 : DayOfWeek = DayOfWeek.Fri
printfn "Saturday: %A" weekend1
printfn "Sunday: %A" weekend2
printfn "Monday: %A" weekDay1
printfn "Tuesday: %A" weekDay2
printfn "Wednesday: %A" weekDay3
printfn "Thursday: %A" weekDay4
printfn "Friday: %A" weekDay5
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

A saída do exemplo acima será a seguinte:

Saturday: Sat
Sunday: Sun
Monday: Mon
Tuesday: Tues
Wednesday: Wed
Thursday: Thurs
Friday: Fri

Abaixo está outro exemplo para dar uma compreensão clara da enumeração:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// Define an enumeration for different types of animals
type Animal =
| Dog
| Cat
| Elephant
| Giraffe
| Lion
| Tiger
| Bear
// Function that takes an Animal value and returns a string representation
let printAnimal (animal: Animal) =
match animal with
| Dog -> "Dog"
| Cat -> "Cat"
| Elephant -> "Elephant"
| Giraffe -> "Giraffe"
| Lion -> "Lion"
| Tiger -> "Tiger"
| Bear -> "Bear"
// Function that checks if an animal is a mammal or not
let isMammal (animal: Animal) =
match animal with
| Dog | Cat | Elephant | Giraffe -> true
| Lion | Tiger | Bear -> false
// Usage of the Animal enumeration
let myPet = Dog
let myFavoriteAnimal = Elephant
let bigAnimal = Giraffe
printfn "My pet is a %s." (printAnimal myPet)
printfn "My favorite animal is an %s." (printAnimal myFavoriteAnimal)
printfn "Biggest animal is a %s." (printAnimal bigAnimal)
if isMammal myPet then
printfn "My pet is a mammal."
else
printfn "My pet is not a mammal."
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

E a saída será:

My pet is a Dog.
My favorite animal is an Elephant.
Biggest animal is a Giraffe.
My pet is a mammal.

Exemplo de Explicação

Definimos uma enumeração chamada Animal que representa diferentes tipos de animais, incluindo Dog , Cat , Elephant , Giraffe , Lion , Tiger e Bear . Também temos duas funções: printAnimal que recebe um valor de Animal como entrada e retorna uma string que representa o animal, e isMammal que verifica se um animal é um mamífero ou não.

Em seguida, usamos a enumeração Animal em nosso código criando três variáveis: myPet que representa meu animal de estimação e é definido como Dog, myFavoriteAnimal que representa meu animal favorito e é definido como Elephant e bigAnimal que representa o maior animal e é definido como Giraffe. Usamos a função printAnimal para imprimir a representação em string desses animais.

Finalmente, usamos a função isMammal para verificar se myPet é um mamífero ou não, e imprimimos a mensagem correspondente. No geral, a enumeração e as funções fornecem uma maneira concisa e segura de representar e trabalhar com diferentes tipos de animais em nosso código.

Você pode ajudar outras pessoas a aprender sobre o poder e a natureza flexível do F# se as condições compartilhando nosso artigo nas mídias sociais abaixo. Isso permitirá que eles criem aplicativos da Web dinâmicos e interativos.

Nós valorizamos o seu feedback.
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Assine a nossa newsletter
Digite seu e-mail para receber um resumo semanal de nossos melhores posts. Saber mais!
ícone