Valutazione a corto circuito
La valutazione a corto circuito è un meccanismo relativo agli operatori booleani binari per cui il secondo operando viene valutato unicamente se il valore del primo operando non è sufficiente da solo a determinare il risultato dell'operatore.
Ad esempio, il risultato dell'operatore logico AND è necessariamente falso quando il primo operando è falso, ed il risultato dell'operatore logico OR è necessariamente vero quando il primo operando è vero; in entrambi i casi è possibile determinare il risultato indipendentemente dal valore del secondo operando, che quindi può non essere preso in considerazione.
La valutazione a corto circuito, prevista in numerosi linguaggi di programmazione, è usata sia per sveltire il calcolo del risultato delle espressioni, sia come forma compatta di un'istruzione condizionale qualora la valutazione del secondo operando produca degli effetti collaterali.
[modifica] Esempi
In uno script di shell:
test -d /tmp/foo || mkdir /tmp/foo
In questo caso il comando mkdir /tmp/foo viene eseguito unicamente se il risultato del primo comando (che verifica l'esistenza della directory /tmp/foo) è falso, per via della valutazione a corto circuito dell'operatore OR (indicato come || nello script). Rappresenta una forma compatta di
if ! test -d /tmp/foo; then mkdir /tmp/foo; fi
Nel linguaggio C:
char * p; ... if (p != NULL && *p == 'x') ...;
In questo caso la dereferenziazione del puntatore p (*p == 'x') viene effettuata solo se esso non è NULL (p != NULL) per via della valutazione a corto circuito dell'operatore AND (&&). Senza la valutazione a corto circuito esso sarebbe stato dereferenziato anche nel caso in cui p valesse NULL, che è un'operazione non ammessa, per cui si sarebbe dovuto ricorrere a
if (p != NULL) { if (*p == 'x') ...; }
[modifica] Voci correlate
|
|