F# - 数据类型

F#中的数据类型可分为以下几种;

  • 积分类型

  • 浮点类型

  • 文本类型

  • 其他类型

积分数据类型

下表提供了F#的整数数据类型.这些基本上是整数数据类型.

F#Type大小范围示例备注
sbyte1字节-128到127

42y

-11y

8位有符号整数
byte1字节0到255

42uy

200uy

8-位无符号整数
int162字节-32768至32767

42s

-11s

16位有符号整数
uint162个字节0到65,535

42us

200us

16位无符号整数
int/int324字节-2,147,483,648至2,147,483,647

42

-11

32位有符号整数
uint324字节0到4,294,967,295

42u

200u

32位无符号整数
int648字节-9,223,372,036,854,775,808至9,223,372,036,854,775,807

42L

-11L

64位有符号整数
uint648字节0至18,446,744,073,709,551,615

42UL

200UL

64-位无符号整数
bigint至少4个字节任何整数

42I

1499999

9999999

9999999

9999999

9999I

任意精度整数

示例

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


编译并执行程序时,它会产生以下输出 :

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


浮点数据类型

下表提供了F#的浮点数据类型.

F#Type大小范围示例备注
float324字节±1.5e-45到±3.4e38

42.0F

-11.0F

32位有符号浮点数(7位有效数字)
float8字节±5.0e-324至±1.7e308

42.0

-11.0

64位有符号浮点数(15 -16位有效数字)
decimal16 bytes±1.0e-28至±7.9e28

42.0M

-11.0M

128位有符号浮点数字(28-29位有效数字)
BigRational至少4个字节任何有理数.

42N

-11N

任意精确有理数.使用此类型需要引用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: 212.098000
e: 504.768000
f: 716.866000
x: 21290.1
y: 50446.8
z: 71736.9


文本数据类型

下表提供了F#的文本数据类型.

F#Type尺寸范围示例备注
char2字节U + 0000到U + ffff

'x'

'\t'

单个unicode字符
string20 +(2 * string的长度)bytes0到大约20亿个字符

"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


编译并执行程序时,它会产生以下输出 :

Choice: y
Name: Zara Ali
Organisation: Tutorials Point

其他数据类型

以下table提供了F#的其他一些数据类型.

F#类型大小范围示例备注
bool1字节只有两个可能的值,true或false

true

false

存储布尔值

示例

let trueVal = true
let falseVal = false

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


编译并执行时程序,它产生以下输出 :

True Value: true
False Value: false