Recordando la sintaxis del operador ternario
-
07-07-2019 - |
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.
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.