D语言数据类型 - 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类型在这一点上可能不被理解,所以让我们继续,我们将在后面的章节这些概念。