F#數(shù)據(jù)類(lèi)型

2022-08-16 09:21 更新

F#中的數(shù)據(jù)類(lèi)型可分類(lèi)如下: -

  • 整數(shù)類(lèi)型
  • 浮點(diǎn)類(lèi)型
  • 文本類(lèi)型
  • 其他類(lèi)型

整體數(shù)據(jù)類(lèi)型

下表提供了F#的積分?jǐn)?shù)據(jù)類(lèi)型。 這些基本上是整數(shù)數(shù)據(jù)類(lèi)型。

F#類(lèi)型 大小 范圍 例子 備注
sbyte 1個(gè)字節(jié) -128到127

42Y

-11y

8位有符號(hào)整數(shù)
byte 1個(gè)字節(jié) 0到255

42uy

200uy

8位無(wú)符號(hào)整數(shù)
int16 2個(gè)字節(jié) -32768到32767

42S

-11s

16位有符號(hào)整數(shù)
uint16 2個(gè)字節(jié) 0到65,535

42us

200us的

16位無(wú)符號(hào)整數(shù)
int/int32 4個(gè)字節(jié) 2,147,483,648 2,147,483,647

42

-11

32位有符號(hào)整數(shù)
uint32 4個(gè)字節(jié) 0 4,294,967,295

42U

200U

32位無(wú)符號(hào)整數(shù)
int64 8個(gè)字節(jié) -9,223,372,036,854,775,808到9,223,372,036,854,775,807

42L

-11L

64位有符號(hào)整數(shù)
uint64 8個(gè)字節(jié) 0到18,446,744,073,709,551,615

42UL

200μl的

64位無(wú)符號(hào)整數(shù)
bigint 至少4個(gè)字節(jié) 任何整數(shù)

42I

1499999

9999999

9999999

9999999

9999I

任意精度的整數(shù)

(* signed floating point number *)
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

當(dāng)你編譯和執(zhí)行程序,它產(chǎn)生以下輸出 -

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

浮點(diǎn)數(shù)據(jù)類(lèi)型

下表提供F#的浮點(diǎn)數(shù)據(jù)類(lèi)型。

F#類(lèi)型 大小 范圍 例子 備注
float32 4個(gè)字節(jié) ±1.5E-45至±3.4E38

42.0F

-11.0F

32位有符號(hào)浮點(diǎn)數(shù)(7個(gè)有效位)
float 8個(gè)字節(jié) ±5.0E-324到±1.7e308

42.0

-11.0

64位有符號(hào)浮點(diǎn)數(shù)(15-16有效位)
decimal 16字節(jié) ±1.0E-28±7.9e28

42.0M

-11.0M

128位有符號(hào)浮點(diǎn)數(shù)(28-29有效位)
BigRational 至少4個(gè)字節(jié) 任意有理數(shù)。

42N

-11N

任意精度有理數(shù)。 使用此類(lèi)型需要引用FSharp.PowerPack.dll。

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

當(dāng)你編譯和執(zhí)行程序,它產(chǎn)生以下輸出 

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

text數(shù)據(jù)類(lèi)型

下表提供F#的文本數(shù)據(jù)類(lèi)型。

F#類(lèi)型 尺寸 范圍 備注
char 2個(gè)字節(jié) U + 0000至U + FFFF

'x'

'\t'

單個(gè)Unicode字符
string 20 +(2 *字符串的長(zhǎng)度)個(gè)字節(jié) 0至約2十億個(gè)字符

"Hello"

"World"

Unicode文本

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

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

當(dāng)你編譯和執(zhí)行程序,它產(chǎn)生以下輸出 -

Choice: y
Name: Zara Ali
Organisation: Tutorials Point

其他數(shù)據(jù)類(lèi)型

下表提供的F#的某些其它數(shù)據(jù)類(lèi)型。

F#類(lèi)型 大小 范圍 例子 備注
bool 1個(gè)字節(jié) 只有兩個(gè)可能值,真或假

true

false

存儲(chǔ)布爾值

let trueVal = true
let falseVal = false

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

當(dāng)你編譯和執(zhí)行程序,它產(chǎn)生以下輸出 

True Value: true
False Value: false


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)