Se si guarda veramente cosa succede quando si dichiara una variabile e si inizializza (assegna un valore iniziale), si vedrà che a livello di istruzione macchina, o codice byte per Java, c'è una quantità significativa di potenza computazionale utilizzato in entrambi questi passaggi.
- dichiara i mezzi variabili assegnazione memoria, creando un'istanza di tipo chiese, ecc ecc
- Poi inizializzazione quella posizione di memoria, richiede ancora più elaborazione per spostare il valore predefinito della posizione memoria allocata, come riempiendolo con 0 se il valore predefinito è 0. (Nota: quando la posizione della memoria casuale è assegnata a una variabile che la memoria potrebbe contenere qualsiasi modello, lasciata lì da un valore precedente)
Quindi, se l'utente utilizza inconsapevolmente una variabile senza prima dandogli un valore accettabile per il suo tipo, allora potrebbe esserci un errore se il valore che wa s non c'era corretto.
Quindi, se un linguaggio ti obbliga a inizializzare una variabile (o lo fa da solo) alla dichiarazione, riduce le possibilità di un errore lungo la linea, ma potrebbe sprecare potenza di elaborazione per qualcosa che non volevi davvero.
D'altra parte, se ti permette di dichiarare una variabile senza inizializzarla, ti dà il controllo e può risparmiare qualche potenza di calcolo per te, ma apre le possibilità di un errore. (Si supponga di avere uno scenario in cui il valore iniziale per la variabile dipende da alcune altre condizioni, che prenderanno in considerazione e assegneranno la variabile di conseguenza. In tal caso, l'inizializzazione della variabile alla dichiarazione potrebbe essere solo una potenza di elaborazione dei rifiuti).
Le lingue decidono quale percorso intraprendere, dipendono in gran parte da quello che considerano il loro potere.
se si tratta di dare al programmatore la possibilità di avere il controllo e di realizzare programmi altamente ottimizzati, di solito permetteranno di dichiarare vars senza inizializzare, oltre a più cose.
Ma se il linguaggio prevede di forzare il programmatore a scrivere più programmi privi di errori, prenderebbe l'altro percorso.
Credo che la risposta sia diversa dalla lingua alla lingua. –
Sì, lo è. L'autore del libro afferma che questa funzione è valida in Java, modifico il post. –
Buona domanda. Mi chiedo quale sia la logica? – xagyg