Wikiwand AI

Condiciones Yoda

En la jerga de los programadores, las condiciones Yoda es un estilo de programación donde las dos partes de una expresión están invertidas con respecto al orden típico en una sentencia condicional, de manera que una condición de Yoda coloca la parte constante de la expresión en el lado izquierdo de la declaración condicional. Son parte de los estándares de codificación para aplicaciones como Symfony y WordPress. From Wikipedia, the free encyclopedia

En la jerga de los programadores, las condiciones Yoda (también conocidas como la notación Yoda) es un estilo de programación donde las dos partes de una expresión están invertidas con respecto al orden típico en una sentencia condicional, de manera que una condición de Yoda coloca la parte constante de la expresión en el lado izquierdo de la declaración condicional.

Son parte de los estándares de codificación para aplicaciones como Symfony[1] y WordPress.[2]

El nombre de este estilo de programación se deriva de Yoda, un personaje de la película Star Wars que construye sus frases con un orden sintáctico particular[3] (por ejemplo, "Cuando tengas 900 años, lucirás tan bien como no").[4][5] Thomas M. Tuerke afirma haber acuñado el término notación Yoda y haberlo publicado en línea por primera vez en 2006.[6] Según él, el término condición Yoda fue popularizado más tarde por Félix Cloutier en 2010.

Ejemplo

Normalmente una declaración condicional se escribiría como:

if ($value== 42) {/* ... */ }
// Se lee como: "Si el valor es igual a 42..."

Las condiciones de Yoda describen la misma expresión, pero al revés:

if (42== $value) {/* ... */ }
// Reads like: "Si 42 es igual al valor..."

Ventajas

Detecciones de errores

Colocar el valor constante en la expresión no cambia el comportamiento del programa (a menos que los valores se evalúen como falsos; consúltense los párrafos siguientes). En lenguajes de programación que utilizan un único signo igual (=) para expresiones de asignación y no para comparación, puede aparecer un error al asignarse un valor sin querer en lugar de escribir una declaración condicional.

if (myNumber= 42) {/* ... */ }
// Esto asigna 42 a myNumber en lugar de evaluar la condición deseada

Usando las condiciones de Yoda:

if (42= myNumber) {/* ... */ }
// Se trata de un error de sintaxis y no se compilará.

Dado que 42 es un valor constante y no se puede cambiar, este error será detectado por el compilador.

Boolean myBoolean= null;
if (myBoolean== true) {/* ... */ }
// Esto provoca una NullPointerException en Java Runtime, pero es legal en la compilación.
// Esto sucede porque Java intentará llamar a myBoolean.booleanValue() en un objeto nulo.

Evitar algunos tipos de comportamiento nulo inseguro

Las condiciones de Yoda ayudan con comportamientos inseguros en algunas situaciones.

String myString= null;
if (myString.equals("foobar")) {/* ... */ }
// Esto provoca una NullPointerException en Java

Con condiciones de Yoda:

String myString= null;
if ("foobar".equals(myString)) {/* ... */ }
// Esto se resuelve en falso sin generar una NullPointerException

Crítica

Referencias

Enlaces externos

Related Articles

Timelines

Top Qs

Fact Checks