Dipende dal linguaggio di programmazione. Se utilizzi una lingua in cui i tipi di variabile non vengono applicati, ciò potrebbe accadere.
x = 1;
y = 494.0;
z = new Object();
x = y = z = "hello";
Ora x, y, z sono tutti una stringa. Questo potrebbe confondere se trovato più avanti nel codice.
L'altro problema sono gli overload dell'operatore. Alcune lingue ti consentono di cambiare ciò che accade per l'assegnazione a sinistra di una proprietà. Quindi potrebbe succedere il seguente.
x = y.something = 0;
Dove y.something
non restituisce 0
. Restituisce null
.
Altrimenti, non ho problemi con questo. Se si tratta di una lingua strongmente tipizzata e non vi è alcun rischio nel verificarsi di quanto sopra. Quindi nessun problema.
L'altro problema riguarda il modo in cui leggi il codice sorgente.
a = b = c = new Object();
Non è uguale a.
a = new Object();
b = new Object();
c = new Object();
È davvero così.
c = new Object();
b = c;
a = b;
Potrebbe non essere chiaro che tutte e tre le variabili hanno lo stesso riferimento.