se null è negativo come giustificiamo il "rfc" nullable per il linguaggio PHP?

2

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

    
posta BruceStackOverFlow 14.07.2018 - 15:03
fonte

1 risposta

10

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.

    
risposta data 14.07.2018 - 15:44
fonte

Leggi altre domande sui tag