@ agnasg

agnasg


!continue;

06-06-2012 7:38 PM

Hablando de pruebas este es un ejercicio rápido de lógica simbólica. Es simple, se trata de cambiar las siguientes instrucciones por una construcción elegante. ¿Qué es una construcción elegante? Difícil de decir pero transformar esto en un sólo if y hacer una sola llamada al continue, podría ser un buen comienzo. Esta “cosa” (escrita en php pero puede ser cualquier lenguaje similar a C) está dentro de un loop y debe retornar al comienzo si el string “$link” tiene la palabra “region”, y si no la tiene y la variable $región es true (debe hacer el continue también). ¿Simple verdad? Oh, una dificultad extra, strstr retorna “algo” si encuentra la palabra, y false en caso contrario.
[cce lang=”c” width=”480″]
if (strstr ($link, “region”)) {
if (!$region)
continue;
} else if ($region)
continue;
[/cce]

Esto se transforma en:
[cce lang=”c” width=”480″]
if (!strstr ($link, “region”) && $region)
continue ;
if (strstr ($link, “region”) && !$region)
continue;[/cce]
lo cual fácilmente se puede simplicar en:
[cce lang=”c” width=”480″]
$a = strstr ($link, “region”) !== false;
if ($a != $region)
continue;[/cce] que por supuesto se puede simplificar más.