Noções básicas sobre tipos de dados F#

Vamos explorar os tipos de dados F#  neste artigo, incluindo os tipos mais básicos, como números e strings, bem como os diferentes tipos de números e strings em F#.

Aqui, veremos mais de perto como esses tipos podem ser usados ​​para representar e manipular dados de várias maneiras.

A linguagem de programação F# foi criada com o intuito de ser altamente expressiva e concisa. Isso a torna a linguagem ideal para desenvolver aplicativos complexos que dependem muito de dados para serem processados.

Como um dos recursos mais fortes do F#, o poderoso sistema de tipos é um dos recursos mais importantes. Com uma abundância de tipos e construções, o F# fornece um conjunto robusto de opções para trabalhar com dados de maneira segura e eficiente.

Depois de terminar este artigo, você deve ter uma boa ideia do que são os tipos de dados F# e como você pode usá-los efetivamente no desenvolvimento de seus próprios aplicativos F# .



Tipos de Dados F#

F# oferece um conjunto de tipos de dados que podem ser classificados das seguintes formas:

  • Tipos integrais
  • Tipos de ponto flutuante
  • tipos de texto
  • Outros tipos

Tipo de dados integrais

Aqui está uma tabela que inclui os tipos de dados integrais disponíveis no F#.

Basicamente, esses são tipos de dados que podem ser expressos como números inteiros.

F# Tipos Tamanho Faixa Exemplos Observações
sbyte 1 byte -128 a 127 42 anos

-11 anos

inteiro com sinal de 8 bits
byte 1 byte 0 a 255 6uy

5uy

inteiro sem sinal de 8 bits
int16 2 bytes -32768 a 32767 4s

9s

inteiro com sinal de 16 bits
uint16 2 bytes 0 a 65.535 42us

200us

inteiro sem sinal de 16 bits
int/int32 4 bytes -2.147.483.648 a 2.147.483.647 35

44

inteiro com sinal de 32 bits
uint32 4 bytes 0 a 4.294.967.295 212u

504u

inteiro sem sinal de 32 bits
int64 8 bytes -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807 7878L

4548L

inteiro com sinal de 64 bits
uint64 8 bytes 0 a 18.446.744.073.709.551.615 454521UL

544000UL

inteiro sem sinal de 64 bits
bigint Pelo menos 4 bytes qualquer número inteiro 42I

149999999999

999999999999

9999999I

número inteiro de precisão arbitrária

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
44
45
46
47
48
49
50
51
52
//signed 1 byte integer
let a = 121.97f
let b = 145.58f
let c = a + b
printfn "a: %f" a
printfn "b: %f" b
printfn "The sum of single byte signed integers a + b is: %f" c
//unsigned 1 byte natural number
let x = 5uy
let y = 6uy
let z = x + y
printfn "x: %i" x
printfn "y: %i" y
printfn "The sum of single byte unsigned integers x + y is: %i" z
//signed 2 byte integer
let m = 4s
let n = 9s
let o = m + n
printfn "m: %i" m
printfn "n: %i" n
printfn "The sum of signed 2 byte intergers m + n is: %i" o
//signed 4 byte integer
let d = 212u
let e = 504u
let f = d + e
printfn "d: %i" d
printfn "e: %i" e
printfn "The sum of signed 4 byte integers d + e is: %i" f
//signed 8 byte integer
let g = 7878l
let h = 4548l
let i = g + h
printfn "g: %i" g
printfn "h: %i" h
printfn "The sum of signed 8 byte integers g + h is: %i" i
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Tipos de dados de ponto flutuante

Uma lista de tipos de dados de ponto flutuante F# pode ser encontrada na tabela a seguir.

F# Tipos Tamanho Faixa Exemplos Observações
float32 4 bytes “±1,5e-45 a ±3,4e38” 35,0F

45,0F

7 dígitos significativos, número de ponto flutuante com sinal de 32 bits
flutuador 8 bytes “±5,0e-324 a ±1,7e308” 35,0

45,0

15-16 dígitos significativos em um número de ponto flutuante com sinal de 64 bits
decimal 16 bytes “±1,0e-28 a ±7,9e2” 445,0M

1546,0M

Tem 28-29 dígitos significativos e é assinado em 128 bits
BigRational Pelo menos 4 bytes Qualquer número racional. 78N

1315N

Número racional aleatório. Se quiser usar esse tipo, você precisa consultar a biblioteca FSharp.PowerPack.dll.

Exemplo: 

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//32-bit signed
let a = 687.145f
let b = 687.794f
let c = a + b
printfn "a: %f" a
printfn "b: %f" b
printfn "Addition of a + b is: %f" c
//64-bit signed
let x = 45687.098
let y = 12144.768
let z = x + y
printfn "x: %g" x
printfn "y: %g" y
printfn "Addition of x + y is: %g" z
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Tipos de Dados F#

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//32-bit signed
let a = 687.145f
let b = 687.794f
let c = a * b
printfn "a: %f" a
printfn "b: %f" b
printfn "Multiplication of a * b is: %f" c
//64-bit signed
let x = 45687.098
let y = 12144.768
let z = x * y
printfn "x: %g" x
printfn "y: %g" y
printfn "Multiplication of x * y is: %g" z
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Saída:
a: 687.145000
b: 687.794000
Multiplication of a * b is: 472614.200000
x: 45687.1
y: 12144.8
Multiplication of x * y is: 5.54859e+08

Tipos de Dados F# – Texto

Aqui está uma tabela que mostra os tipos de dados de texto que o F# oferece suporte.
F# Tipos Tamanho Faixa Exemplos Observações
Caracteres 2 bytes U+0000 a U+ffff x Caracteres unicode únicos
corda 20 + (2 * comprimento da string) bytes 0 a cerca de 2 bilhões de caracteres "Olá"

"Mundo"

Texto Unicode

Example: 

1
2
3
4
5
6
7
8
9
10
let choice = 'a'
let name = "John Wick"
let website = "mrexamples"
printfn "Choice: %c" choice
printfn "Name: %s" name
printfn "Website: %s" website
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Saída

Choice: a
Name: John Wick
Website: mrexamples

Example: 

1
2
3
4
5
6
7
8
let choice = 'a'
let greet = "Hello from mrexamples"
printfn "Choice: %c" choice
printfn "%s" greet
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Saída:
Choice: a
Hello from mrexamples

Outros tipos de dados

Esta tabela fornece algumas informações sobre alguns dos outros tipos de dados disponíveis no F#.

F# Tipos Tamanho Faixa Exemplos Observações
bool 1 byte Verdadeiro ou falso são os dois únicos valores possíveis que podem ser atribuídos a ele verdadeiro

falso

Esta função armazena valores booleanos
Exemplo: 

Example

1
2
3
4
5
6
7
8
9
let true_value = true
let false_value = false
printfn "True Value: %b \n" (true_value)
printfn "False Value: %b" (false_value)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Saída
True Value: true 
False Value: false
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