F # - Tipos de datos

Los tipos de datos en F # se pueden clasificar de la siguiente manera:

  • Tipos integrales
  • Tipos de coma flotante
  • Tipos de texto
  • Otros tipos

Tipo de datos integral

La siguiente tabla proporciona los tipos de datos integrales de F #. Estos son básicamente tipos de datos enteros.

Tipo F # Talla Rango Ejemplo Observaciones
sbyte 1 byte -128 hasta 127

42 años

-11 años

Entero de 8 bits con signo
byte 1 byte 0 hasta 255

42uy

200uy

Entero sin signo de 8 bits
int16 2 bytes -32768 al 32767

42 s

-11 s

Entero de 16 bits con signo
uint16 2 bytes 0 hasta 65.535

42us

200us

Entero sin signo de 16 bits
int / int32 4 bytes -2,147,483,648 a 2,147,483,647

42

-11

Entero de 32 bits con signo
uint32 4 bytes 0 a 4.294.967.295

42u

200u

Entero sin signo de 32 bits
int64 8 bytes -9,223,372,036,854,775,808 a 9,223,372,036,854,775,807

42L

-11L

Entero de 64 bits con signo
uint64 8 bytes 0 a 18,446,744,073,709,551,615

42UL

200UL

Entero sin signo de 64 bits
Empezando Al menos 4 bytes cualquier entero

42I

1499999

9999999

9999999

9999999

9999I

entero de precisión arbitraria

Ejemplo

(* single byte integer *)
let x = 268.97f
let y = 312.58f
let z = x + y

printfn "x: %f" x
printfn "y: %f" y
printfn "z: %f" z

(* unsigned 8-bit natural number *)

let p = 2uy
let q = 4uy
let r = p + q

printfn "p: %i" p
printfn "q: %i" q
printfn "r: %i" r

(* signed 16-bit integer *)

let a = 12s
let b = 24s
let c = a + b

printfn "a: %i" a
printfn "b: %i" b
printfn "c: %i" c

(* signed 32-bit integer *)

let d = 212l
let e = 504l
let f = d + e

printfn "d: %i" d
printfn "e: %i" e
printfn "f: %i" f

Cuando compila y ejecuta el programa, produce el siguiente resultado:

x: 1
y: 2
z: 3
p: 2
q: 4
r: 6
a: 12
b: 24
c: 36
d: 212
e: 504
f: 716

Tipos de datos de coma flotante

La siguiente tabla proporciona los tipos de datos de coma flotante de F #.

Tipo F # Talla Rango Ejemplo Observaciones
float32 4 bytes ± 1,5e-45 a ± 3,4e38

42.0F

-11.0F

Número de coma flotante con signo de 32 bits (7 dígitos significativos)
flotador 8 bytes ± 5.0e-324 a ± 1.7e308

42,0

-11,0

Número de coma flotante con signo de 64 bits (15-16 dígitos significativos)
decimal 16 bytes ± 1.0e-28 a ± 7.9e28

42,0 millones

-11,0 millones

Número de coma flotante con signo de 128 bits (28-29 dígitos significativos)
BigRational Al menos 4 bytes Cualquier número racional.

42N

-11N

Número racional de precisión arbitraria. El uso de este tipo requiere una referencia a FSharp.PowerPack.dll.

Ejemplo

(* 32-bit signed floating point number *)
(* 7 significant digits *)

let d = 212.098f
let e = 504.768f
let f = d + e

printfn "d: %f" d
printfn "e: %f" e
printfn "f: %f" f

(* 64-bit signed floating point number *)
(* 15-16 significant digits *)
let x = 21290.098
let y = 50446.768
let z = x + y

printfn "x: %g" x
printfn "y: %g" y
printfn "z: %g" z

Cuando compila y ejecuta el programa, produce el siguiente resultado:

d: 212.098000
e: 504.768000
f: 716.866000
x: 21290.1
y: 50446.8
z: 71736.9

Tipos de datos de texto

La siguiente tabla proporciona los tipos de datos de texto de F #.

Tipo F # Talla Rango Ejemplo Observaciones
carbonizarse 2 bytes U + 0000 a U + ffff

'X'

'\ t'

Caracteres unicode únicos
cuerda 20 + (2 * longitud de la cadena) bytes 0 a aproximadamente 2 mil millones de caracteres

"Hola"

"Mundo"

Texto Unicode

Ejemplo

let choice = 'y'
let name = "Zara Ali"
let org = "Tutorials Point"

printfn "Choice: %c" choice
printfn "Name: %s" name
printfn "Organisation: %s" org

Cuando compila y ejecuta el programa, produce el siguiente resultado:

Choice: y
Name: Zara Ali
Organisation: Tutorials Point

Otros tipos de datos

La siguiente tabla proporciona algunos otros tipos de datos de F #.

Tipo F # Talla Rango Ejemplo Observaciones
bool 1 byte Solo dos valores posibles, verdadero o falso

cierto

falso

Almacena valores booleanos

Ejemplo

let trueVal = true
let falseVal = false

printfn "True Value: %b" (trueVal)
printfn "False Value: %b" (falseVal)

Cuando compila y ejecuta el programa, produce el siguiente resultado:

True Value: true
False Value: false