Non capisco come ci pensi: link
quando è ampiamente confermato, che l'utilizzo di null è una cattiva pratica
Dove mi sbaglio?
Grazie.
Non sto criticando! Non capisco le motivazioni
Non capisco come ci pensi: link
quando è ampiamente confermato, che l'utilizzo di null è una cattiva pratica
Dove mi sbaglio?
Grazie.
Non sto criticando! Non capisco le motivazioni
I nulli sono "cattivi" perché molti linguaggi rendono ogni tipo implicitamente nullable - che indebolisce considerevolmente il sistema di tipi poiché ogni operazione può o non può risultare in un'eccezione di puntatore nullo. Tuttavia, la maggior parte delle volte l'aspettativa è che le variabili non siano nulle, rendendo così i potenziali valori nulli ancora più insidiosi.
La sintassi esplicita per i tipi annullabili risolve parte di questo problema: poiché il valore può essere esplicitamente nullo, ci si può aspettare che si verifichi prima. Questo rafforza un po 'il sistema di tipi.
Ancora più importante, questo rende il sistema dei tipi più auto-documentante. Con i tipi esplicitamente annullabili c'è una differenza più chiara tra "un certo tipo T, che in teoria potrebbe anche essere null" e "un tipo che è T o null - controlla il valore prima di usare".
A livello di teoria dei tipi, questo è solo un caso speciale di "tipi di unione" (vale a dire entrambi i tipi). Questi sono frequentemente usati implicitamente in linguaggi dinamici come PHP, ad es. strpos()
che restituisce un indice o FALSE. Ciò può portare a bug (ad esempio l'indice zero è anche falso-y). Essere in grado di documentare in modo esplicito che con un sistema di tipi (e consentire a potenziali bug di essere rilevati tramite strumenti di analisi statici) è ottimo, specialmente per basi di codice più grandi e più mature.