Programação D - Tipos de Dados

Na linguagem de programação D, os tipos de dados referem-se a um sistema extenso usado para declarar variáveis ​​ou funções de diferentes tipos. O tipo de uma variável determina quanto espaço ela ocupa no armazenamento e como o padrão de bits armazenado é interpretado.

Os tipos em D podem ser classificados da seguinte forma -

Sr. Não. Tipos e descrição
1

Basic Types

Eles são tipos aritméticos e consistem em três tipos: (a) inteiro, (b) ponto flutuante e (c) caractere.

2

Enumerated types

Eles são novamente tipos aritméticos. Eles são usados ​​para definir variáveis ​​que só podem ser atribuídas a certos valores inteiros discretos em todo o programa.

3

The type void

O especificador de tipo void indica que nenhum valor está disponível.

4

Derived types

Eles incluem (a) tipos de ponteiro, (b) tipos de matriz, (c) tipos de estrutura, (d) tipos de união e (e) tipos de função.

Os tipos de matriz e tipos de estrutura são chamados coletivamente de tipos agregados. O tipo de uma função especifica o tipo do valor de retorno da função. Veremos os tipos básicos na seção a seguir, enquanto outros tipos serão abordados nos próximos capítulos.

Tipos inteiros

A tabela a seguir fornece listas de tipos inteiros padrão com seus tamanhos de armazenamento e intervalos de valores -

Tipo Tamanho de armazenamento Faixa de valor
bool 1 byte falso ou verdadeiro
byte 1 byte -128 a 127
ubyte 1 byte 0 a 255
int 4 bytes -2.147.483.648 a 2.147.483.647
uint 4 bytes 0 a 4.294.967.295
baixo 2 bytes -32.768 a 32.767
ushort 2 bytes 0 a 65.535
grandes 8 bytes -9223372036854775808 a 9223372036854775807
Ulong 8 bytes 0 a 18446744073709551615

Para obter o tamanho exato de um tipo ou variável, você pode usar o sizeofoperador. O tipo de expressão . (Sizeof) produz o tamanho de armazenamento do objeto ou tipo em bytes. O exemplo a seguir obtém o tamanho do tipo int em qualquer máquina -

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

   return 0; 
}

Quando você compila e executa o programa acima, ele produz o seguinte resultado -

Length in bytes: 8

Tipos de ponto flutuante

A tabela a seguir menciona tipos de ponto flutuante padrão com tamanhos de armazenamento, intervalos de valor e sua finalidade -

Tipo Tamanho de armazenamento Faixa de valor Objetivo
flutuador 4 bytes 1.17549e-38 a 3.40282e + 38 6 casas decimais
em dobro 8 bytes 2.22507e-308 a 1.79769e + 308 15 casas decimais
real 10 bytes 3.3621e-4932 a 1.18973e + 4932 ou o maior tipo de ponto flutuante que o hardware suporta, ou duplo; o que for maior
flutuar 4 bytes 1.17549e-38i a 3.40282e + 38i tipo de valor imaginário de flutuação
duplo 8 bytes 2.22507e-308i a 1.79769e + 308i tipo de valor imaginário duplo
ireal 10 bytes 3.3621e-4932 a 1.18973e + 4932 tipo de valor imaginário real
flutuar 8 bytes 1.17549e-38 + 1.17549e-38i a 3.40282e + 38 + 3.40282e + 38i tipo de número complexo feito de dois carros alegóricos
duplo 16 bytes 2.22507e-308 + 2.22507e-308i a 1.79769e + 308 + 1.79769e + 308i tipo de número complexo feito de duas duplas
creal 20 bytes 3.3621e-4932 + 3.3621e-4932i a 1.18973e + 4932 + 1.18973e + 4932i tipo de número complexo feito de dois reais

O exemplo a seguir imprime o espaço de armazenamento ocupado por um tipo float e seus valores de intervalo -

import std.stdio;

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

   return 0; 
}

Quando você compila e executa o programa acima, ele produz o seguinte resultado no Linux -

Length in bytes: 4

Tipos de personagem

A tabela a seguir lista os tipos de caracteres padrão com tamanhos de armazenamento e sua finalidade.

Tipo Tamanho de armazenamento Objetivo
Caracteres 1 byte Unidade de código UTF-8
wchar 2 bytes Unidade de código UTF-16
dchar 4 bytes Unidade de código UTF-32 e ponto de código Unicode

O exemplo a seguir imprime o espaço de armazenamento ocupado por um tipo char.

import std.stdio;

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

Quando você compila e executa o programa acima, ele produz o seguinte resultado -

Length in bytes: 1

O tipo vazio

O tipo void especifica que nenhum valor está disponível. É usado em dois tipos de situações -

Sr. Não. Tipos e descrição
1

Function returns as void

Existem várias funções em D que não retornam valor ou você pode dizer que retornam nulas. Uma função sem valor de retorno tem o tipo de retorno nulo. Por exemplo,void exit (int status);

2

Function arguments as void

Existem várias funções em D que não aceitam nenhum parâmetro. Uma função sem parâmetro pode ser aceita como nula. Por exemplo,int rand(void);

O tipo de vazio pode não ser compreendido por você neste ponto, então vamos prosseguir e abordaremos esses conceitos nos próximos capítulos.