Cosa sono gli operatori ternari (condizionali) in Ruby?

Il ternario (o condizionale) l'operatore valuterà un'espressione e restituirà un valore se è vero e un altro valore se è falso. È un po 'come una scorciatoia, un'istruzione if compatta.

L'operatore ternario di Ruby ha i suoi usi ma è anche un po 'controverso.

Esempio di operatore ternario

Diamo un'occhiata a questo esempio:

Qui, l'operatore condizionale viene utilizzato per selezionare tra due stringhe. L'intera espressione dell'operatore è tutto compreso il condizionale, il punto interrogativo, due stringhe e i due punti. Il formato generale di questa espressione è il seguente: condizionale? vero falso.

Se l'espressione condizionale è vera, l'operatore valuterà come espressione vera. In caso contrario, verrà valutata come espressione falsa. In questo esempio, è tra parentesi, quindi non interferisce con gli operatori di concatenazione di stringhe che lo circondano.

In altre parole, l'operatore condizionale è come un Se dichiarazione. Ricordati che Se le istruzioni in Ruby valutano l'ultimo valore nel blocco che viene eseguito. Quindi, potresti riscrivere l'esempio precedente in questo modo:

Questo codice è funzionalmente equivalente e forse un po 'più facile da capire. Se io è maggiore di 10, il Se l'istruzione stessa valuterà la stringa "maggiore di" o valuterà la stringa "minore o uguale a". Questa è la stessa cosa che sta facendo l'operatore ternario, solo l'operatore ternario è più compatto.

Usi per l'operatore ternario

Quindi, quali usi ha l'operatore ternario? Ha degli usi, ma non ce ne sono molti e potresti andare d'accordo senza di essa.

Di solito è usato per calzascarpe in valori in cui i condizionali sarebbero troppo ingombranti. Viene anche utilizzato nell'assegnazione variabile per selezionare rapidamente tra due valori. 

Ecco due casi d'uso tipici che vedrai per l'operatore ternario:

Potresti aver notato che questo sembra abbastanza non-Ruby. Le espressioni complesse non appartengono a una riga di Ruby: di solito è suddivisa e più facile da leggere. Tuttavia, vedrai questo operatore e può essere utilizzato in modo efficace senza sfuggire di mano.

Una regola da seguire è che se si utilizza questo operatore per selezionare tra due valori con un semplice condizionale, è OK usare. Se stai facendo qualcosa di più complesso, probabilmente dovresti usare un Se dichiarazione invece.