F # - typy danych

Typy danych w języku F # można sklasyfikować w następujący sposób -

  • Typy całkowe
  • Typy zmiennoprzecinkowe
  • Typy tekstów
  • Inne rodzaje

Integralny typ danych

W poniższej tabeli przedstawiono integralne typy danych F #. Są to zasadniczo typy danych całkowitoliczbowych.

Typ F # Rozmiar Zasięg Przykład Uwagi
sbyte 1 bajt -128 do 127

42y

-11y

8-bitowa liczba całkowita ze znakiem
bajt 1 bajt Od 0 do 255

42uy

200uy

8-bitowa liczba całkowita bez znaku
int16 2 bajty -32768 do 32767

42s

-11s

16-bitowa liczba całkowita ze znakiem
uint16 2 bajty 0 do 65 535

42us

200us

16-bitowa liczba całkowita bez znaku
int / int32 4 bajty -2 147 483 648 do 2 147 483 647

42

-11

32-bitowa liczba całkowita ze znakiem
uint32 4 bajty Od 0 do 4 294 967 295

42u

200u

32-bitowa liczba całkowita bez znaku
int64 8 bajtów -9.223.372.036.854.775.808 do 9.223.372.036.854.775.807

42L

-11L

64-bitowa liczba całkowita ze znakiem
uint64 8 bajtów Od 0 do 18 446 744 073 709 551 615

42UL

200UL

64-bitowa liczba całkowita bez znaku
bigint Co najmniej 4 bajty dowolna liczba całkowita

42I

1499999

9999999

9999999

9999999

9999I

liczba całkowita o dowolnej precyzji

Przykład

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

Kiedy kompilujesz i wykonujesz program, daje to następujące dane wyjściowe -

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

Typy danych zmiennoprzecinkowych

Poniższa tabela zawiera zmiennoprzecinkowe typy danych F #.

Typ F # Rozmiar Zasięg Przykład Uwagi
float32 4 bajty ± 1,5e-45 do ± 3,4e38

42.0F

-11,0F

32-bitowa liczba zmiennoprzecinkowa ze znakiem (7 cyfr znaczących)
pływak 8 bajtów ± 5,0e-324 do ± 1,7e308

42,0

-11,0

64-bitowa liczba zmiennoprzecinkowa ze znakiem (15-16 cyfr znaczących)
dziesiętny 16 bajtów ± 1,0e-28 do ± 7,9e28

42,0 mln

-11,0 mln

128-bitowa liczba zmiennoprzecinkowa ze znakiem (28-29 cyfr znaczących)
BigRational Co najmniej 4 bajty Dowolna liczba wymierna.

42N

-11N

Liczba wymierna o dowolnej precyzji. Użycie tego typu wymaga odwołania do FSharp.PowerPack.dll.

Przykład

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

Kiedy kompilujesz i wykonujesz program, daje to następujące dane wyjściowe -

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

Typy danych tekstowych

W poniższej tabeli przedstawiono typy danych tekstowych F #.

Typ F # Rozmiar Zasięg Przykład Uwagi
zwęglać 2 bajty U + 0000 do U + ffff

„x”

'\ t'

Pojedyncze znaki Unicode
strunowy 20 + (2 * długość łańcucha) bajtów 0 do około 2 miliardów znaków

"Dzień dobry"

"Świat"

Tekst Unicode

Przykład

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

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

Kiedy kompilujesz i wykonujesz program, daje to następujące dane wyjściowe -

Choice: y
Name: Zara Ali
Organisation: Tutorials Point

Inne typy danych

W poniższej tabeli przedstawiono inne typy danych języka F #.

Typ F # Rozmiar Zasięg Przykład Uwagi
bool 1 bajt Tylko dwie możliwe wartości, prawda lub fałsz

prawdziwe

fałszywy

Przechowuje wartości logiczne

Przykład

let trueVal = true
let falseVal = false

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

Kiedy kompilujesz i wykonujesz program, daje to następujące dane wyjściowe -

True Value: true
False Value: false