本節描述 OCaml 程式操作的值的種類。
整數值是介於 −230 到 230−1 之間的整數,也就是 −1073741824 到 1073741823。實作可能會支援更廣泛的整數值範圍:在 64 位元平台上,目前的實作支援的整數範圍從 −262 到 262−1。
浮點數值是以浮點數表示法表示的數字。目前的實作使用符合 IEEE 754 標準的雙精度浮點數,具有 53 位元尾數和從 −1022 到 1023 的指數範圍。
字元值表示為介於 0 到 255 之間的 8 位元整數。介於 0 到 127 之間的字元碼遵循 ASCII 標準進行解釋。目前的實作遵循 ISO 8859-1 標準解釋介於 128 到 255 之間的字元碼。
字串值是有限的字元序列。目前的實作支援最多包含 224 − 5 個字元(16777211 個字元)的字串;在 64 位元平台上,限制為 257 − 9。
值的元組寫為 (v1, …, vn),表示值 v1 到 vn 的 n 元組。目前的實作支援最多包含 222 − 1 個元素(4194303 個元素)的元組。
記錄值是標記的值元組。寫為 { field1 = v1; …; fieldn = vn } 的記錄值將值 vi 與記錄欄位 fieldi 關聯,其中 i = 1 … n。目前的實作支援最多包含 222 − 1 個欄位(4194303 個欄位)的記錄。
陣列是相同類型值的有限、可變大小的序列。目前的實作支援最多包含 222 − 1 個元素(4194303 個元素)的陣列,除非元素是浮點數(在這種情況下為 2097151 個元素);在 64 位元平台上,所有陣列的限制都是 254 − 1。
變體值可以是常數建構子,或應用於多個值的非常數建構子。前者的情況寫為 constr;後者的情況寫為 constr (v1, ... , vn ),其中 vi 被稱為非常數建構子 constr 的參數。如果只有一個參數,則可以省略括號。
以下常數被視為內建的常數建構子
常數 | 建構子 |
false | 布林值 false |
true | 布林值 true |
() | “unit” 值 |
[] | 空列表 |
目前的實作限制每個變體類型最多有 246 個非常數建構子和 230−1 個常數建構子。
多型變體是變體值的替代形式,不屬於預定義的變體類型,並遵循特定的類型規則。它們可以是常數,寫為 `tag-name,或非常數,寫為 `tag-name(v)。
函式值是從值到值的映射。
物件由隱藏的內部狀態組成,該狀態是實例變數的記錄,以及用於存取和修改這些變數的一組方法。物件的結構由建立它的頂層類別描述。