跳轉到內容

D 程式設計/型別

來自華夏公益教科書,開放的書籍,為開放的世界

待完成。


Clipboard

待辦事項


D 資料型別

[編輯 | 編輯原始碼]

如果你直接檢視計算機記憶體的內容,你只會看到很多位元組。這些通常顯示為數字,但實際上它們本身沒有意義,甚至沒有數字的意義。

型別在 D 等計算機語言中用於賦予一個位元組或位元組序列意義。型別定義了這些位元組是數字、文字、日期還是其他東西。

基本型別

[編輯 | 編輯原始碼]

空型別

[編輯 | 編輯原始碼]
  • void

布林型別

[編輯 | 編輯原始碼]
  • bool

整數型別

[編輯 | 編輯原始碼]

提供的型別是

  • byte
  • ubyte
  • short
  • ushort
  • int
  • uint
  • long
  • ulong
  • cent (保留供將來使用)
  • ucent (保留供將來使用)

每種型別在位中的大小定義了它可以容納多少個不同的值(=狀態)。

例如,一個 8 位型別可以儲存 256 個不同的狀態,而一個 16 位型別可以儲存 65536 個狀態。

型別的尺寸是

名稱 位數 八位位元組數 最小 最大
byte 8 1 -128 +127
ubyte 8 1 0 +255
short 16 2 -32,768 +32,767
ushort 16 2 0 +65,535
int 32 4 -2,147,483,648 +2,147,483,647
uint 32 4 0 +4,294,967,295
long 64 8 -9,223,372,036,854,775,808 +9,223,372,036,854,775,807
ulong 64 8 0 +18,446,744,073,709,551,615
cent 128 16 -170,141,183,460,469,231,731,687,303,715,884,105,728 +170,141,183,460,469,231,731,687,303,715,884,105,727

每種型別都存在有符號和無符號變體。無符號變體在前面有一個“u”(例如 *uint*、*ubyte*)。

無符號意味著可能的範圍被解釋為從 0 開始的非負值,一直到該型別的可能狀態的最大值減 1,因為 0 也是一個必須儲存的狀態。

對於 *ubyte* 型別(8 位 = 256 個狀態),這意味著它可以儲存從 0 到 255 的值(包括 255)。

有符號型別將其狀態的一半解釋為正數,另一半解釋為負數,因此有符號 *byte* 型別的取值範圍為 -128 到 +127。

浮點型別

[編輯 | 編輯原始碼]
  • float
  • double
  • real
  • ifloat
  • idouble
  • ireal
  • cfloat
  • cdouble
  • creal

字元型別

[編輯 | 編輯原始碼]

一個 *字元* 是一個資訊單位,大致對應於一個類似音素的單位或符號,例如自然語言書面形式中的字母表。這個概念還包括控制字元,如回車。

字元通常組合成字串。

D 語言允許直接處理 Unicode 字串。

  • char (用於處理 UTF8 程式碼單元)
  • wchar (用於處理 UTF16 程式碼單元)
  • dchar (用於處理 UTF32 程式碼單元)

派生型別

[編輯 | 編輯原始碼]
  • 指標
  • 陣列
  • 關聯陣列
  • 函式
  • 委託

使用者定義型別

[編輯 | 編輯原始碼]
  • 別名
  • typedef
  • 列舉
  • 結構體
  • 聯合
華夏公益教科書