In Vai, switch
es sono molto più flessibili che in C (e C++) in quanto in grado di gestire i casi di espressioni booleane e sostituire grandi else
- if
scale apparentemente del tutto, in particolare con il default blocchi .tasto Go vs if-else efficienza
switch {
case x < 5 && y > 2:
//...
case y == 1 || x > 2:
//...
default:
}
C'è qualche vantaggio dell'efficienza di utilizzare un switch
over else
-if
in Go? Sembra che l'efficienza potenziata venga persa dalla flessibilità di switch
. Spetta al compilatore solo capire e vedere se può fare un jump table?
Esiste un vantaggio in termini di prestazioni nell'utilizzo di switch
su if
e else
?
Questa è una risposta molto utile. Grazie per avermi detto di ignorare la domanda, ora capisco. –
Come per tutte le ottimizzazioni, dovrebbero essere guidate da misurazioni e analisi piuttosto che preoccuparsi di dettagli che potrebbero non avere alcun impatto. Ma se il tuo interruttore/caso è profondamente annidato in un ciclo interno, il suo comportamento potrebbe essere molto significativo. Come ho detto, sono necessarie misurazione e analisi. –