Qual è la differenza / il vantaggio di fare un doppio incarico?

3

C'è qualche vantaggio / è una cattiva pratica in Java fare il seguente

x = x = 5

L'ho visto in uno dei miei peer code e sono rimasto sorpreso dal fatto che avrebbe eseguito un doppio incarico?

È qualcosa che è uguale a x = 5 o se x = x= 5 fa la differenza?

    
posta rao 16.07.2013 - 19:52
fonte

1 risposta

8

Is there any advantage/ is it a bad practice to do the below

x= x = 5

Non hai specificato la lingua, ma nella maggior parte delle lingue simili a C il valore di un'assegnazione è il valore assegnato. Cioè, il valore dell'espressione x = 5 è 5 , e l'espressione che stai chiedendo è essenzialmente la stessa di fare:

x = 5;
x = 5;

Non c'è alcun valore nell'assegnazione extra, quindi non c'è motivo di farlo.

Ora, quello che a volte vedi è l'assegnazione di due (o più) variabili ad un certo valore allo stesso tempo, in questo modo:

x = y = 5;

In questo caso, assegni da 5 a y , quindi assegna il valore di tale espressione (ancora, 5) a x . Ciò garantisce che sia x che y abbiano lo stesso valore.

Un'altra possibilità è che uno dei compiti era destinato a essere un confronto, con il risultato assegnato alla variabile da confrontare:

x = x == 5;

Questo non è un doppio incarico, è l'assegnazione dell'espressione booleana x == 5 a x . Cioè, se il valore di x è 5 prima dell'espressione, x otterrà il valore di true (un numero intero diverso da zero); se x non è 5, x sarà impostato su false (cioè 0).

    
risposta data 16.07.2013 - 19:57
fonte

Leggi altre domande sui tag