Saltar al contenido

¿Por qué es posible declarar una variable sin un valor inicial?

Luego de mucho luchar ya dimos con el resultado de este atolladero que muchos lectores de nuestro sitio presentan. Si tienes algo que compartir puedes dejar tu comentario.

Solución:

Hay muchas razones diferentes para muchos idiomas diferentes.

MEMORIA

Cuando declara una variable, necesita algo de memoria para contener la variable. Esto implica pedir memoria al núcleo del sistema operativo, o algún tipo de programa de monitoreo que realice un seguimiento de la memoria. En resumen, esta puede ser una operación costosa. Por lo tanto, en muchos casos, es deseable asignar toda la memoria requerida para el objeto al mismo tiempo y luego asignarle el valor que se le deba asignar más adelante. De esta manera, puede aumentar el rendimiento del programa en las partes críticas. Este caso de uso es lo suficientemente común como para permitir una característica que permita la declaración sin inicialización. Sin embargo, las buenas prácticas afirman que en todos los demás casos debe inicializar la variable durante la asignación.

Piense en la asignación de memoria como una burocracia. Hay demasiado papeleo. Por lo tanto, si sabe que va a utilizar una gran cantidad de memoria más adelante, solicite una gran cantidad de memoria por adelantado en una sola transacción, en lugar de preguntarle al núcleo la próxima vez.

INICIALIZACIÓN COSTOSA

Este punto es muy similar al punto anterior. Supongamos que tiene 1 millón por 1 millón array. Inicializar tal array es un procedimiento costoso. Hacerlo con los valores predeterminados sería una estupidez y, por lo tanto, una característica de este tipo, donde la memoria se asigna y luego se usa según sea necesario.

Aquí, es como si estuvieras comprando una gran cantidad de bloques de lego para construir algo, pero quieres comprarlos en las formas del hombre araña predeterminado. El comerciante o usted tendrían que esforzarse más para darles la forma de Spiderman cuando de todos modos va a remodelarlos más tarde.

Por ejemplo, podrías tener algo como esto:

int i;
if (first_condition)
    i = 1;
elseif (second_condition)
    i = 2;
else
    i = 0;

Su variable necesitaría ser declarada fuera del if para que se use más tarde, pero su valor está fijado dentro del if condiciones

Si realmente observa lo que sucede cuando declara una variable y la inicializa (asigna un valor inicial), verá que en el nivel de instrucción de la máquina, o en el código de bytes para Java, se utiliza una cantidad significativa de potencia computacional en ambos. pasos.

  1. declarar la variable significa asignar memoria, crear una instancia del tipo solicitado, etc., etc.
  2. Luego, inicializar esa ubicación de memoria, nuevamente requiere más procesamiento para mover el valor predeterminado a la ubicación de memoria asignada, como llenarlo con 0 si el valor predeterminado es 0. (Nota: cuando la ubicación de memoria aleatoria se asigna a una variable que la memoria podría contener cualquier patrón, dejado allí por un valor anterior)

Entonces, si el usuario, sin saberlo, usa una variable sin darle primero un valor aceptable para su tipo, podría haber un error si el valor que estaba allí no era correcto.

Entonces, si un idioma lo obliga a inicializar una variable (o lo hace solo) en la declaración, reduce las posibilidades de un error en el futuro, pero puede estar desperdiciando poder de procesamiento para algo que realmente no desea.

Por otro lado, si le permite declarar una variable sin inicializarla, le da el control y puede ahorrarle algo de potencia informática, pero abre la posibilidad de un error. (Suponga que tiene un escenario en el que su valor inicial para la variable depende de algunas otras condiciones, que se considerarán y asignarán la variable en consecuencia. En tal caso, inicializar la declaración var at podría ser solo un desperdicio de poder de procesamiento).

Los idiomas deciden qué camino quieren tomar, en su mayoría dependen de lo que consideran que es su poder.

si se trata de darle al programador la oportunidad de tener el control y hacer programas altamente optimizados, generalmente permitirán declarar vars sin inicializar, además de más cosas.

Pero si el lenguaje se trata de obligar al programador a escribir más programas sin errores, tomaría el otro camino.

Recuerda que tienes la opción de aclarar si diste con la respuesta.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *