Programación D - Tipos de datos
En el lenguaje de programación D, los tipos de datos se refieren a un sistema extenso que se utiliza para declarar variables o funciones de diferentes tipos. El tipo de variable determina cuánto espacio ocupa en el almacenamiento y cómo se interpreta el patrón de bits almacenado.
Los tipos en D se pueden clasificar de la siguiente manera:
No Señor. | Tipos y descripción |
---|---|
1 | Basic Types Son tipos aritméticos y constan de tres tipos: (a) entero, (b) punto flotante y (c) carácter. |
2 | Enumerated types De nuevo son tipos aritméticos. Se utilizan para definir variables a las que solo se les pueden asignar ciertos valores enteros discretos en todo el programa. |
3 | The type void El especificador de tipo void indica que no hay ningún valor disponible. |
4 | Derived types Incluyen (a) tipos de puntero, (b) tipos de matriz, (c) tipos de estructura, (d) tipos de unión y (e) tipos de función. |
Los tipos de matriz y los tipos de estructura se denominan colectivamente tipos agregados. El tipo de una función especifica el tipo de valor de retorno de la función. Veremos los tipos básicos en la siguiente sección, mientras que otros tipos se tratarán en los próximos capítulos.
Tipos de enteros
La siguiente tabla proporciona listas de tipos de enteros estándar con sus tamaños de almacenamiento y rangos de valores:
Tipo | Tamaño de almacenamiento | Rango de valores |
---|---|---|
bool | 1 byte | falso o verdadero |
byte | 1 byte | -128 hasta 127 |
ubyte | 1 byte | 0 hasta 255 |
En t | 4 bytes | -2,147,483,648 a 2,147,483,647 |
uint | 4 bytes | 0 a 4.294.967.295 |
corto | 2 bytes | -32.768 hasta 32.767 |
corto | 2 bytes | 0 hasta 65.535 |
largo | 8 bytes | -9223372036854775808 al 9223372036854775807 |
ulong | 8 bytes | 0 a 18446744073709551615 |
Para obtener el tamaño exacto de un tipo o una variable, puede utilizar el sizeofoperador. El tipo de expresión . (Sizeof) produce el tamaño de almacenamiento del objeto o tipo en bytes. El siguiente ejemplo obtiene el tamaño del tipo int en cualquier máquina:
import std.stdio;
int main() {
writeln("Length in bytes: ", ulong.sizeof);
return 0;
}
Cuando compila y ejecuta el programa anterior, produce el siguiente resultado:
Length in bytes: 8
Tipos de punto flotante
La siguiente tabla menciona los tipos de punto flotante estándar con tamaños de almacenamiento, rangos de valores y su propósito:
Tipo | Tamaño de almacenamiento | Rango de valores | Propósito |
---|---|---|---|
flotador | 4 bytes | 1.17549e-38 a 3.40282e + 38 | 6 lugares decimales |
doble | 8 bytes | 2.22507e-308 a 1.79769e + 308 | 15 decimales |
real | 10 bytes | 3.3621e-4932 a 1.18973e + 4932 | el tipo de punto flotante más grande que admite el hardware, o el doble; lo que sea más grande |
ifloat | 4 bytes | 1.17549e-38i a 3.40282e + 38i | tipo de valor imaginario de flotador |
doble | 8 bytes | 2.22507e-308i a 1.79769e + 308i | tipo de valor imaginario de doble |
Es real | 10 bytes | 3.3621e-4932 a 1.18973e + 4932 | tipo de valor imaginario de real |
cfloat | 8 bytes | 1.17549e-38 + 1.17549e-38i a 3.40282e + 38 + 3.40282e + 38i | tipo de número complejo formado por dos flotadores |
cdouble | 16 bytes | 2.22507e-308 + 2.22507e-308i a 1.79769e + 308 + 1.79769e + 308i | tipo de número complejo formado por dos dobles |
creal | 20 bytes | 3.3621e-4932 + 3.3621e-4932i a 1.18973e + 4932 + 1.18973e + 4932i | tipo de número complejo formado por dos reales |
El siguiente ejemplo imprime el espacio de almacenamiento tomado por un tipo flotante y sus valores de rango:
import std.stdio;
int main() {
writeln("Length in bytes: ", float.sizeof);
return 0;
}
Cuando compila y ejecuta el programa anterior, produce el siguiente resultado en Linux:
Length in bytes: 4
Tipos de caracteres
La siguiente tabla enumera los tipos de caracteres estándar con tamaños de almacenamiento y su propósito.
Tipo | Tamaño de almacenamiento | Propósito |
---|---|---|
carbonizarse | 1 byte | Unidad de código UTF-8 |
wchar | 2 bytes | Unidad de código UTF-16 |
dchar | 4 bytes | Unidad de código UTF-32 y punto de código Unicode |
El siguiente ejemplo imprime el espacio de almacenamiento ocupado por un tipo de char.
import std.stdio;
int main() {
writeln("Length in bytes: ", char.sizeof);
return 0;
}
Cuando compila y ejecuta el programa anterior, produce el siguiente resultado:
Length in bytes: 1
El tipo vacío
El tipo vacío especifica que no hay ningún valor disponible. Se utiliza en dos tipos de situaciones:
No Señor. | Tipos y descripción |
---|---|
1 | Function returns as void Hay varias funciones en D que no devuelven valor o se puede decir que devuelven vacío. Una función sin valor de retorno tiene el tipo de retorno como vacío. Por ejemplo,void exit (int status); |
2 | Function arguments as void Hay varias funciones en D que no aceptan ningún parámetro. Una función sin parámetro puede aceptarse como nula. Por ejemplo,int rand(void); |
Es posible que en este momento no entienda el tipo vacío, así que continuemos y cubriremos estos conceptos en los próximos capítulos.