Programación D - Variables

Una variable no es más que un nombre que se le da a un área de almacenamiento que nuestros programas pueden manipular. Cada variable en D tiene un tipo específico, que determina el tamaño y el diseño de la memoria de la variable; el rango de valores que se pueden almacenar dentro de esa memoria; y el conjunto de operaciones que se pueden aplicar a la variable.

El nombre de una variable puede estar compuesto por letras, dígitos y el carácter de subrayado. Debe comenzar con una letra o un guión bajo. Las letras mayúsculas y minúsculas son distintas porque D distingue entre mayúsculas y minúsculas. Según los tipos básicos explicados en el capítulo anterior, habrá los siguientes tipos de variables básicas:

No Señor. Tipo y descripción
1

char

Normalmente, un solo octeto (un byte). Este es un tipo entero.

2

int

El tamaño más natural de número entero para la máquina.

3

float

Un valor de coma flotante de precisión simple.

4

double

Un valor de coma flotante de doble precisión.

5

void

Representa la ausencia de tipo.

El lenguaje de programación D también permite definir otros tipos de variables como Enumeración, Puntero, Matriz, Estructura, Unión, etc., que cubriremos en capítulos posteriores. Para este capítulo, estudiemos solo los tipos de variables básicas.

Definición de variable en D

Una definición de variable le dice al compilador dónde y cuánto espacio crear para la variable. Una definición de variable especifica un tipo de datos y contiene una lista de una o más variables de ese tipo de la siguiente manera:

type variable_list;

Aquí, type debe ser un tipo de datos D válido que incluya char, wchar, int, float, double, bool o cualquier objeto definido por el usuario, etc., y variable_listpuede constar de uno o más nombres de identificadores separados por comas. Aquí se muestran algunas declaraciones válidas:

int    i, j, k; 
char   c, ch; 
float  f, salary; 
double d;

La línea int i, j, k;declara y define las variables i, j y k; que indica al compilador que cree variables denominadas i, j y k de tipo int.

Las variables se pueden inicializar (asignar un valor inicial) en su declaración. El inicializador consta de un signo igual seguido de una expresión constante de la siguiente manera:

type variable_name = value;

Ejemplos

extern int d = 3, f = 5;    // declaration of d and f.  
int d = 3, f = 5;           // definition and initializing d and f.  
byte z = 22;                // definition and initializes z.  
char x = 'x';               // the variable x has the value 'x'.

Cuando una variable se declara en D, siempre se establece en su 'inicializador predeterminado', al que se puede acceder manualmente como T.init dónde T es el tipo (ej. int.init). El inicializador predeterminado para los tipos enteros es 0, para los booleanos es falso y para los números de coma flotante NaN.

Declaración de variable en D

Una declaración de variable proporciona seguridad al compilador de que existe una variable con el tipo y nombre dados, de modo que el compilador proceda a una compilación posterior sin necesidad de detalles completos sobre la variable. Una declaración de variable tiene su significado solo en el momento de la compilación, el compilador necesita una declaración de variable real en el momento de vincular el programa.

Ejemplo

Pruebe el siguiente ejemplo, donde las variables se han declarado al inicio del programa, pero se definen e inicializan dentro de la función principal:

import std.stdio; 
 
int a = 10, b = 10; 
int c;
float f;  

int main () { 
   writeln("Value of a is : ", a); 
   
   /* variable re definition: */ 
   int a, b; 
   int c; 
   float f;
   
   /* Initialization */ 
   a = 30; 
   b = 40; 
   writeln("Value of a is : ", a); 
   
   c = a + b; 
   writeln("Value of c is : ", c);  
   
   f = 70.0/3.0; 
   writeln("Value of f is : ", f); 
   return 0; 
}

Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:

Value of a is : 10 
Value of a is : 30 
Value of c is : 70 
Value of f is : 23.3333

Valores L y valores R en D

Hay dos tipos de expresiones en D:

  • lvalue - Una expresión que es un lvalue puede aparecer como el lado izquierdo o derecho de una asignación.

  • rvalue - Una expresión que es un rvalue puede aparecer en el lado derecho pero no en el lado izquierdo de una asignación.

Las variables son valores l y, por lo tanto, pueden aparecer en el lado izquierdo de una tarea. Los literales numéricos son valores r y, por lo tanto, no pueden asignarse y no pueden aparecer en el lado izquierdo. La siguiente declaración es válida:

int g = 20;

Pero lo siguiente no es una declaración válida y generaría un error en tiempo de compilación:

10 = 20;