原始型別
在電腦科學中,原始型別(英語:Primitive type)有別於複合型別,是由程式語言提供的資料類型,作為建立基礎。根據語言及其實作,在電腦的記憶體中,原始型別可能沒有與物件一對一的對應。
Primitive type也有稱作內建型別、基礎型別或者基本型別。
概覽
原始型別的實際範圍,取決於所使用的特定程式語言。例如,在C語言中,字串是一個複合型別,不過在後來的Basic中,字串是原始型別。
典型的原始型別包含:
- 字元(
character
、char
),依字元集又分為SBCS、DBCS、MBCS這三大類; - 整數(
integer
、int
、short
、long
、byte
),其有各種精度,依是否可表示負數的數值又再各自區分有號數與無號數; - 浮點數(
float
、double
、real
、double precision
); - 定點數(
fixed
),其有各種精度,以及所選的數量級。 - 布林型別有真和假兩值。
- 參照(又稱作指標或handle),它是一個較小的值,指向其它可能大得多的物件,其所在的記憶體地址。
更多更複雜的原始型別:
- 多元組,出現於ML、Python
- 連結串列,出現於Lisp
- 複數,出現於Fortran、C(C99)、Python
- 有理數,出現於Lisp
- 一等函數、閉包、續體,出現於函數式程式語言,如Lisp和ML
通常預期以基於原始型別的運算,構成較快速的語言。整數加法,例如,可以執行單一的機器指令,且部分處理器提供特定的指令,以單一指令處理一系列的字元。尤其是,C語言標準中提到,「一個『簡單』的int物件,具有原始的大小,其大小以執行環境的架構所暗示。」意即在32位元架構下的int
,可能就是32位元的長度。
大部分語言不允許以程式修改原始型別的行為或效能。例外的有Smalltalk,其允許在程式內部擴展原始型別。可以在其上執行加入的運算,甚至重新定義內建的運算。