D 程式設計/型別
外觀
< 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
- 列舉
- 結構體
- 聯合
- 類
