toggle

Aprende a usar operadores IN, AND, OR y NOT en Blogger

min rel

Como ya habiamos hablamos sobre las condicionales b:if y los operadores basicos; en esta nueva entrada vamos a emplear in, and, or y not, gracias a estos podemos simplificar las condiciones.


Condiciones empleando IN

Este operador se puede usar como in o contains, y nos permite comprobar si uno o mas valores se encuentra dentro de un conjuntos de datos. Su sintaxis es la siguiente:


<b:if cond='{"valor1","valor2"} contains [conjunto de datos]'/>
<b:if cond='[conjunto de datos] in {"valor1","valor2"}'/>

En este ejemplo comprobamos si la pagina actual es el index o se trata de una entrada, en cualquiera de los dos casos, la condición es valida:


<b:if cond='data:blog.pageType in {"index", "item"}'>
   <!-- Comprobamos si es el index o una entrada -->
</b:if>

Ahora realizamos la misma comprobación, pero usando contains:


<b:if cond='{"index", "item"} contains data:blog.pageType'>
   <!-- Comprobamos si es el index o una entrada -->
</b:if>

Condiciones empleando AND

Este operador se puede usar como and o &&, y nos permite comprobar 2 o mas condiciones. El contenido se muestra cuando todas las comparaciones sean validas. Su sintaxis es la siguiente:


<b:if cond='[condición] and [otra condición]'/>
<b:if cond='[condición] &amp;&amp; [otra condición]'/>

En el siguiente ejemplo comprobamos url principal y si esta, es parte del index:


<b:if cond='data:blog.homepageUrl and data:blog.pageType == "index"'>
   <!-- La url principal es el index [True] -->
</b:if>

Condiciones empleando NOT

Se puede usar como not o !, y sirve para excluir datos de una condición o para invertir su estado (de true a false). Puede ser utilizado de muchas formas:


<b:if cond='not [condición]'/>
<b:if cond='![condición]'/>
<b:if cond='[condición] and not [otra condición]'/>
<b:if cond='[condición] not in ["data1","data2"]'/>

En el siguiente ejemplo, nuestra condición comprueba el tipo de página, y se muestra para todos, menos en el index y las entradas:


<b:if cond='data:blog.pageType not in {"index","item"}'>
   <!-- Se muestra para todos, menos en index y entradas [True] -->
</b:if>

En este otro ejemplo, nuestra condición muestra el contenido para todos, menos en la pagina principal:


<b:if cond='not data:blog.homepageUrl'>
   <!-- Se muestra para todos, menos en la pagina principal [True] -->
</b:if>

Condiciones empleando OR

Este operador se puede usar como or o ||, y nos permite insertar 2 o mas condiciones en una sola etiqueta b:if. Muestra el contenido dependiendo de cual se cumpla. Su sintaxis es la siguiente:


<b:if cond='[condición] or [otra condición]'/>
<b:if cond='[condición] || [otra condición]'/>

En este ejemplo comprobamos si es la página principal, o si nos encontramos en una entrada, en ambos casos mostramos el mismo contenido.


<b:if cond='data:blog.homepageUrl or data:blog.pageType == "item"'>
   <!-- Si es la pagina principal o si la pagina es una entrada [True] -->
</b:if>

De esta manera podemos reducir el codigo. Ahora podemos realizar nuevas comprobaciones y mejorar la estructura de nuestro blog, haciéndola mas entendible y fácil de modificar.