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.