- F# 基礎教程
- F# - 首頁
- F# - 概述
- F# - 環境設定
- F# - 程式結構
- F# - 基本語法
- F# - 資料型別
- F# - 變數
- F# - 運算子
- F# - 決策制定
- F# - 迴圈
- F# - 函式
- F# - 字串
- F# - 選項
- F# - 元組
- F# - 記錄
- F# - 列表
- F# - 序列
- F# - 集合
- F# - 對映
- F# - 辨別聯合
- F# - 可變資料
- F# - 陣列
- F# - 可變列表
- F# - 可變字典
- F# - 基本 I/O
- F# - 泛型
- F# - 委託
- F# - 列舉
- F# - 模式匹配
- F# - 異常處理
- F# - 類
- F# - 結構體
- F# - 運算子過載
- F# - 繼承
- F# - 介面
- F# - 事件
- F# - 模組
- F# - 名稱空間
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
廣告