D Программирование - Типы данных

В языке программирования D типы данных относятся к обширной системе, используемой для объявления переменных или функций различных типов. Тип переменной определяет, сколько места она занимает в хранилище и как интерпретируется сохраненный битовый шаблон.

Типы в D можно классифицировать следующим образом:

Sr. No. Типы и описание
1

Basic Types

Это арифметические типы, состоящие из трех типов: (а) целые, (б) с плавающей точкой и (в) символьные.

2

Enumerated types

Это снова арифметические типы. Они используются для определения переменных, которым в программе могут быть присвоены только определенные дискретные целочисленные значения.

3

The type void

Спецификатор типа void указывает, что значение недоступно.

4

Derived types

Они включают (а) типы указателей, (б) типы массивов, (в) типы структур, (г) типы объединения и (д) типы функций.

Типы массивов и типы структур в совокупности называются агрегатными типами. Тип функции определяет тип возвращаемого значения функции. Мы увидим основные типы в следующем разделе, тогда как другие типы будут рассмотрены в следующих главах.

Целочисленные типы

В следующей таблице приведены списки стандартных целочисленных типов с их размерами хранения и диапазонами значений.

Тип Размер хранилища Диапазон значений
bool 1 байт ложь или правда
байт 1 байт От -128 до 127
убайт 1 байт От 0 до 255
int 4 байта От -2 147 483 648 до 2 147 483 647
uint 4 байта От 0 до 4 294 967 295
короткая 2 байта От -32 768 до 32 767
ushort 2 байта От 0 до 65 535
долго 8 байт От -9223372036854775808 до 9223372036854775807
Улонг 8 байт 0 в 18446744073709551615

Чтобы получить точный размер типа или переменной, вы можете использовать sizeofоператор. Тип выражения . (Sizeof) дает размер хранилища объекта или типа в байтах. В следующем примере получается размер типа int на любой машине -

import std.stdio; 
 
int main() { 
   writeln("Length in bytes: ", ulong.sizeof); 

   return 0; 
}

Когда вы компилируете и выполняете вышеуказанную программу, она дает следующий результат:

Length in bytes: 8

Типы с плавающей точкой

В следующей таблице упоминаются стандартные типы с плавающей запятой с размерами хранилища, диапазонами значений и их назначением.

Тип Размер хранилища Диапазон значений Цель
плавать 4 байта С 1.17549e-38 до 3.40282e + 38 6 знаков после запятой
двойной 8 байт 2.22507e-308 до 1.79769e + 308 15 знаков после запятой
настоящий 10 байт 3.3621e-4932 до 1.18973e + 4932 либо самый большой тип с плавающей запятой, поддерживаемый оборудованием, либо двойной; в зависимости от того, что больше
плавать 4 байта От 1.17549e-38i до 3.40282e + 38i тип мнимого значения float
двойной 8 байт 2.22507e-308i - 1.79769e + 308i мнимое значение типа double
я реальный 10 байт 3.3621e-4932 до 1.18973e + 4932 мнимое значение тип реального
cfloat 8 байт От 1.17549e-38 + 1.17549e-38i до 3.40282e + 38 + 3.40282e + 38i тип комплексного числа, состоящий из двух поплавков
cdouble 16 байт 2.22507e-308 + 2.22507e-308i до 1.79769e + 308 + 1.79769e + 308i тип комплексного числа, состоящий из двух двойных
Creal 20 байт От 3.3621e-4932 + 3.3621e-4932i до 1.18973e + 4932 + 1.18973e + 4932i комплексное число, состоящее из двух действительных чисел

В следующем примере печатается место для хранения, занятое типом с плавающей запятой, и его значениями диапазона:

import std.stdio;

int main() { 
   writeln("Length in bytes: ", float.sizeof); 

   return 0; 
}

Когда вы компилируете и выполняете вышеуказанную программу, она дает следующий результат в Linux:

Length in bytes: 4

Типы персонажей

В следующей таблице перечислены стандартные типы символов с размерами хранилища и их назначением.

Тип Размер хранилища Цель
char 1 байт Кодовый блок UTF-8
чар 2 байта Кодовый блок UTF-16
dchar 4 байта Кодовый блок UTF-32 и кодовая точка Unicode

В следующем примере печатается объем памяти, занимаемый типом char.

import std.stdio;

int main() {
   writeln("Length in bytes: ", char.sizeof);
   
   return 0;
}

Когда вы компилируете и выполняете вышеуказанную программу, она дает следующий результат:

Length in bytes: 1

Тип пустоты

Тип void указывает, что значение недоступно. Он используется в двух ситуациях:

Sr. No. Типы и описание
1

Function returns as void

В D есть различные функции, которые не возвращают значение, или вы можете сказать, что они возвращают void. Функция без возвращаемого значения имеет тип возврата как void. Например,void exit (int status);

2

Function arguments as void

В D есть различные функции, которые не принимают никаких параметров. Функция без параметров может быть пуста. Например,int rand(void);

Тип void может быть вам непонятен на данном этапе, поэтому давайте продолжим, и мы рассмотрим эти концепции в следующих главах.