Per il programmatore che lo legge, penso che sia abbastanza chiaro. Sono abituato a leggere "se le condizioni fanno qualcos'altro fare altre cose", quindi posso analizzarlo abbastanza facilmente. Il blocco else sembra un punto davvero logico per un commento che spiega perché non vogliamo fare nulla in quella condizione.
Ma avrà un impatto significativo se avremo il blocco vuoto lì? La chiarezza migliorata per gli umani vale il costo? Penso che sia una domanda specifica per la lingua (o piuttosto per il compilatore / interprete).
L'unica volta in cui posso pensare che questo potrebbe avere un impatto negativo è se si tratta di un collo di bottiglia che deve essere ultra-ottimizzato.
Anche in quei casi, potrebbe non fare alcuna differenza. Ecco un esempio di come vorrei verificare, per C.
a volte non fa alcuna differenza con il codice compilato
short.c
int main() {
if(1) {
printf("Hello World");
}
}
long.c
int main() {
if(1) {
printf("Hello World");
} else {
// not possible
}
}
Poi ho compilato entrambi con l'opzione -S per compilare senza assemblare. Ho confrontato i file di assieme e erano identici.
a volte fa la differenza con il codice compilato
Ho quindi aggiornato i file e sostituito if(1)
con int foo = 1; if(foo)
e ho ripetuto il processo. (Lo so, il blocco non è ancora raggiungibile - quindi se il compilatore lo considera ancora irraggiungibile non ho provato nulla, ma se il compilatore lo considera così raggiungibile allora so di aver ingannato il compilatore e ho dimostrato il mio punto). In questo caso, i file compilati non erano identici: il compilatore non ignorava il blocco else vuoto quando pensava che fosse raggiungibile.
short.s
## call to printf, etc. (i.e. the if block)...
LBB0_2:
## rest of code...
long.s
## call to printf, etc. (i.e. the if block)...
jmp LBB0_3 ## ! there is always a jump statement
LBB0_2:
jmp LBB0_3
LBB0_3:
## rest of code...
Quindi in questa versione quasi raggiungibile, quando è incluso il blocco else vuoto, c'è un'istruzione jump extra alla fine del blocco if. Quindi se le prestazioni sono un problema chiave qui, quindi aggiungere il blocco vuoto non è una buona idea.
conclusione
In base alla lingua, il blocco else potrebbe modificare il codice compilato e influire sulle prestazioni. Dovresti controllare la lingua che stai utilizzando, e se ha un impatto sulle prestazioni nella tua lingua, decidi se le prestazioni sono più importanti della leggibilità in questa sezione di codice.