F # - Tipi di dati

I tipi di dati in F # possono essere classificati come segue:

  • Tipi integrali
  • Tipi in virgola mobile
  • Tipi di testo
  • Altri tipi

Tipo di dati integrale

La tabella seguente fornisce i tipi di dati integrali di F #. Questi sono fondamentalmente tipi di dati interi.

Tipo F # Taglia Gamma Esempio Osservazioni
sbyte 1 byte Da -128 a 127

42y

-11y

Intero con segno a 8 bit
byte 1 byte Da 0 a 255

42uy

200uy

Intero senza segno a 8 bit
int16 2 byte Da -32768 a 32767

42s

-11s

Intero con segno a 16 bit
uint16 2 byte Da 0 a 65.535

42us

200us

Intero senza segno a 16 bit
int / int32 4 byte -2.147.483.648 a 2.147.483.647

42

-11

Intero con segno a 32 bit
uint32 4 byte Da 0 a 4.294.967.295

42u

200u

Intero senza segno a 32 bit
int64 8 byte -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807

42L

-11L

Intero con segno a 64 bit
uint64 8 byte Da 0 a 18.446.744.073.709.551.615

42UL

200UL

Intero senza segno a 64 bit
bigint Almeno 4 byte qualsiasi numero intero

42I

1499999

9999999

9999999

9999999

9999I

numero intero di precisione arbitraria

Esempio

(* 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

Quando compili ed esegui il programma, restituisce il seguente output:

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

Tipi di dati a virgola mobile

La tabella seguente fornisce i tipi di dati a virgola mobile di F #.

Tipo F # Taglia Gamma Esempio Osservazioni
float32 4 byte Da ± 1.5e-45 a ± 3.4e38

42.0F

-11.0F

Numero in virgola mobile con segno a 32 bit (7 cifre significative)
galleggiante 8 byte Da ± 5.0e-324 a ± 1.7e308

42.0

-11.0

Numero in virgola mobile con segno a 64 bit (15-16 cifre significative)
decimale 16 byte Da ± 1.0e-28 a ± 7.9e28

42.0M

-11,0 M

Numero in virgola mobile con segno a 128 bit (28-29 cifre significative)
BigRational Almeno 4 byte Qualsiasi numero razionale.

42N

-11N

Numero razionale di precisione arbitraria. L'utilizzo di questo tipo richiede un riferimento a FSharp.PowerPack.dll.

Esempio

(* 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

Quando compili ed esegui il programma, restituisce il seguente output:

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

Tipi di dati di testo

La tabella seguente fornisce i tipi di dati di testo di F #.

Tipo F # Taglia Gamma Esempio Osservazioni
char 2 byte U + 0000 a U + ffff

'X'

'\ t'

Caratteri unicode singoli
corda 20 + (2 * lunghezza della stringa) byte Da 0 a circa 2 miliardi di caratteri

"Ciao"

"Mondo"

Testo Unicode

Esempio

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

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

Quando compili ed esegui il programma, restituisce il seguente output:

Choice: y
Name: Zara Ali
Organisation: Tutorials Point

Altri tipi di dati

La tabella seguente fornisce alcuni altri tipi di dati di F #.

Tipo F # Taglia Gamma Esempio Osservazioni
bool 1 byte Solo due possibili valori, vero o falso

vero

falso

Memorizza i valori booleani

Esempio

let trueVal = true
let falseVal = false

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

Quando compili ed esegui il programma, restituisce il seguente output:

True Value: true
False Value: false