Pregunta

¿Alguien tiene un buen truco para recordar la sintaxis ternaria estándar?

Específicamente si el '?' o ':' viene primero. Constantemente he conseguido esto al revés a lo largo de los años.

¿Fue útil?

Solución

La condición que está comprobando es como una pregunta, por lo que el signo de interrogación es lo primero.

x > 0 ? 1 : 0

Piense en esta afirmación como tres oraciones en inglés: " ¿Es x mayor que 0? Entonces 1. De lo contrario, 0. '' Tiene una oración para cada cláusula en la declaración.

El predicado:

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

El " verdadero " rama:

1 /* Then 1. */

El " falso " rama:

: 0 /* Else, 0. */

Otros consejos

En cuanto a recordar qué símbolo viene primero, solo pienso en el hecho de que la primera parte es una pregunta, "¿Es cierto o no?", entonces el signo de interrogación va primero.

Pienso en la sintaxis de esta manera

Question ? Yes : No

en python lo leí como una oración normal en inglés:

 a equals b if condition is true else c

Piénselo de esta manera: una declaración ternaria consta de tres partes: la pregunta, el código a ejecutar si la respuesta a la pregunta es "sí". y el código si la respuesta es "no". El "? & Quot; viene después de la pregunta como en las oraciones en inglés.

"? " es un signo de interrogación, por lo que significa "si".

Los dos puntos significan, "ahora viene", "entonces", entonces "

Lo bueno del operador ternario es que no está obligado a usarlo, especialmente si tiene problemas para recordar la sintaxis. Simplemente use una declaración if que sea más legible la mayoría de las veces.

Y no, el ternario no tiene mejor rendimiento que una declaración if.

Va ??así:

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

Si sus pruebas unitarias aún pasan cuando se equivoca, entonces no importa o sus pruebas no cubren suficientes rutas a través del código. Si hay una brecha demasiado larga entre escribirlo y obtener un aprobado / reprobado de las pruebas, ese es otro problema. Muy pocas pequeñas liendres de sintaxis importan en presencia de pruebas buenas y rápidas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top