D語言數據類型
在D編程語言,數據類型是指用於不同類型的聲明變量或函數的全麵係統。一個變量的類型決定了空間占用的存儲,以及如何存儲的比特模式的解釋。
D中的類型可分類如下:
S.N. | 類型和說明 |
---|---|
1 |
基本類型: 此算術類型並包含三種類型:(一)整數類型,(B)浮點類型(三)字符類型 |
2 |
枚舉類型: 此算術類型和它們用於定義可以隻在整個節目被分配若乾離散的整數值的變量。 |
3 |
void類型: 此類型說明符無效表示冇有值可用。 |
4 |
派生類型: 它們包括(一)指針類型,(B)數組類型,(三)結構類型,(四)聯合的類型及(e)函數類型。 |
數組類型和結構類型統稱為聚合類型。一個函數的類型指定函數的返回值的類型。我們會看到基本類型在下麵的部分,而其他類型將包括在下一章節。
整數類型
下表提供了有關其存儲大小和值範圍標準的整數類型的詳細信息:
類型 | 存儲大小 | 值範圍 |
---|---|---|
bool | 1 byte | false or true |
byte | 1 byte | -128 to 127 |
ubyte | 1 byte | 0 to 255 |
int | 4 bytes | -2,147,483,648 to 2,147,483,647 |
uint | 4 bytes | 0 to 4,294,967,295 |
short | 2 bytes | -32,768 to 32,767 |
ushort | 2 bytes | 0 to 65,535 |
long | 8 bytes | -9223372036854775808 to 9223372036854775807 |
ulong | 8 bytes | 0 to 18446744073709551615 |
為了得到一個類型或一個變量的確切大小,可以使用 sizeof 運算符。表達式類型(的sizeof),得到以字節為單位的對象或類型的存儲大小。下麵是一個示例得到任何機器上int型的大小:
import std.stdio; int main() { writeln("Length in bytes: ", ulong.sizeof); return 0; }
當編譯並執行上麵的程序,它會產生以下結果:
Length in bytes: 8
浮點類型
下表提供了有關使用存儲大小和值範圍標準浮點數類型及其用途的詳細信息
類型 | 存儲大小 | 值範圍 | 目的 |
---|---|---|---|
float | 4 bytes | 1.17549e-38 to 3.40282e+38 | 6 位小數 |
double | 8 bytes | 2.22507e-308 to 1.79769e+308 | 15 位小數 |
real | 10 bytes | 3.3621e-4932 to 1.18973e+4932 | 硬件支持無論是最大浮點型或雙;較大者為準 |
ifloat | 4 bytes | 1.17549e-38i to 3.40282e+38i | 浮虛值類型 |
idouble | 8 bytes | 2.22507e-308i to 1.79769e+308i | double虛值類型 |
ireal | 10 bytes | 3.3621e-4932 to 1.18973e+4932 | 實虛值類型 |
cfloat | 8 bytes | 1.17549e-38+1.17549e-38i to 3.40282e+38+3.40282e+38i | 由兩個浮點數複數類型 |
cdouble | 16 bytes | 2.22507e-308+2.22507e-308i to 1.79769e+308+1.79769e+308i | 由兩個雙複數類型 |
creal | 20 bytes | 3.3621e-4932+3.3621e-4932i to 1.18973e+4932+1.18973e+4932i | 由兩個實數,複數類型 |
下麵的例子將打印所采用的是一個float類型及其範圍值的存儲空間:
import std.stdio; int main() { writeln("Length in bytes: ", float.sizeof); return 0; }
當編譯並執行上述程序,它產生在Linux下麵的結果:
Storage size for float : 4
字符類型
下表提供了有關與存儲大小,其目的標準字符類型的詳細信息。
類型 | 存儲大小 | 目的 |
---|---|---|
char | 1 byte | UTF-8 code unit |
wchar | 2 bytes | UTF-16 code unit |
dchar | 4 bytes | UTF-32 code unit and Unicode code yiibai |
下麵的例子將打印用一個char類型的存儲空間。
import std.stdio; int main() { writeln("Length in bytes: ", char.sizeof); return 0; }
當編譯並執行上麵的程序,它會產生以下結果:
Storage size for float : 1
void類型
void類型指定任何值可用。這是用在兩種情況:
S.N. | 類型及描述 |
---|---|
1 |
函數返回 void 在D語言中的各種函數冇有返回值,也可以說他們返回void。冇有返回值的函數的返回類型為void。例如, void exit (int status); |
2 |
函數參數為 void 有D中的各種功能不接受任何參數。不帶參數的函數可以接受一個空白。例如, int rand(void); |
void類型在這一點上可能不被理解,所以讓我們繼續,我們將在後麵的章節這些概念。