Domanda

Qualcuno ha un buon trucco per ricordare la sintassi ternaria standard?

In particolare se il '?' o ':' viene prima di tutto. Ho costantemente ottenuto questo indietro nel corso degli anni.

È stato utile?

Soluzione

La condizione che stai verificando è un po 'come una domanda, quindi il punto interrogativo viene prima.

x > 0 ? 1 : 0

Pensa a questa affermazione come a tre frasi inglesi: " x è maggiore di 0? Quindi 1. Altrimenti, 0. " Hai una frase per ogni clausola nell'istruzione.

Il predicato:

x > 0 ? /* Is x greater than 0? */

Il " true " filiale:

1 /* Then 1. */

Il " false " filiale:

: 0 /* Else, 0. */

Altri suggerimenti

Per quanto riguarda il ricordare quale simbolo viene per primo, penso solo al fatto che la prima parte è una domanda, "È vero o no?", quindi il punto interrogativo va per primo.

Penso alla sintassi in questo modo

Question ? Yes : No

in python l'ho letto come una normale frase inglese:

 a equals b if condition is true else c

Pensala in questo modo: un'istruzione ternaria è composta da tre parti: la domanda, il codice da eseguire se la risposta alla domanda è " si " e il codice se la risposta è "no". Il "? & Quot; viene dopo la domanda come nelle frasi in inglese.

"? & Quot; è un punto interrogativo, quindi significa "se".

Un segno di due punti significa "ora arriva", "quindi" &

.

La cosa buona dell'operatore ternario è che non sei costretto a usarlo, specialmente se hai problemi a ricordare la sintassi. Usa semplicemente un'istruzione if che è più leggibile la maggior parte delle volte.

E no - il ternario non ha prestazioni migliori di un'istruzione if

Va ??così:

myVariable = this.testMethod() ? 'value for true case' : 'value for false case'

Se i tuoi test unitari continuano a passare quando sbagli, allora non importa o i tuoi test non coprono abbastanza i percorsi attraverso il codice. Se c'è un divario troppo lungo tra la digitazione e ottenere un passaggio / fallimento dai test, questo è un altro problema. Pochissime piccole sintassi sono importanti in presenza di test veloci e validi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top