F# - 資料型別



F# 中的資料型別可以分類如下:

  • 整數型別
  • 浮點數型別
  • 文字型別
  • 其他型別

整數資料型別

下表提供了 F# 的整數資料型別。這些基本上是整數資料型別。

F# 型別 大小 範圍 示例 備註
sbyte 1 位元組 -128 到 127

42y

-11y

8 位有符號整數
byte 1 位元組 0 到 255

42uy

200uy

8 位無符號整數
int16 2 位元組 -32768 到 32767

42s

-11s

16 位有符號整數
uint16 2 位元組 0 到 65,535

42us

200us

16 位無符號整數
int/int32 4 位元組 -2,147,483,648 到 2,147,483,647

42

-11

32 位有符號整數
uint32 4 位元組 0 到 4,294,967,295

42u

200u

32 位無符號整數
int64 8 位元組 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807

42L

-11L

64 位有符號整數
uint64 8 位元組 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# 型別 大小 範圍 示例 備註
float32 4 位元組 ±1.5e-45 到 ±3.4e38

42.0F

-11.0F

32 位有符號浮點數(7 位有效數字)
float 8 位元組 ±5.0e-324 到 ±1.7e308

42.0

-11.0

64 位有符號浮點數(15-16 位有效數字)
decimal 16 位元組 ±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# 型別 大小 範圍 示例 備註
char 2 位元組 U+0000 到 U+ffff

'x'

'\t'

單個 Unicode 字元
string 20 + (2 * 字串長度) 位元組 0 到大約 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

其他資料型別

下表提供了 F# 的一些其他資料型別。

F# 型別 大小 範圍 示例 備註
bool 1 位元組 只有兩個可能的值,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
廣告

© . All rights reserved.