Pregunta

Me gustaría saber su opinión sobre el uso de declaraciones return y else indistintamente en CFScript. Yo generalmente uso la siguiente sintaxis:

if (something) {
  // Do something
}
else {
  // Do something else
}

Recientemente se me ocurrió que podía hacer esto en su lugar:

if (something) {
  // Do something
  return;
}
// Do something else

serían esas dos estilos producen un resultado final diferente? Me gusta no tener que envolver el código en una declaración else. Mi pensamiento es que si la declaración if evalúa verdadera y vuelve, no se ejecutará el código debajo de ella. Si no evalúa cierto, entonces el siguiente código se ejecutará independientemente de si está envuelto en una declaración else o no.

¿Eso suena bien?

¿Fue útil?

Solución

ColdFusion como la mayoría de idiomas ofrece muchas maneras de lograr lo mismo. La tarea del programador es elegir el correcto para la situación. Por supuesto "correcta" puede tener muchas interpretaciones, pero yo diría que la forma correcta es clara, concisa y escalable.

En este caso, no existen rendimiento real o "líneas de código" diferencias. El uso de un cambio de una rama completamente diferente del código no está claro sin embargo a los ojos, utilizando el estilo pronto regreso para rescatar de una función debido a las condiciones no válida es (de nuevo) de la OMI más claras. Tenga en cuenta los siguientes casos:

if (not isdefined("url.param1")) {
  return;
}
if (not len(url.param1)) {
  return;
}
if (not refind("[0-9]+", url.param1)) {
  return;
}
doSomethingToValid(url.param1);

frente

if (isdefined("url.param1")) {
  if (len(url.param1)) {
    if (refind("[0-9]+", url.param1)) {
      doSomethingToValid(url.param1);
    }
  }
}

En el primer caso puedo ver toda la validación que se aplicará en una lista y puedo conseguir que todo fuera del camino desde el principio que me permite centrarse en la sustancia real de la rutina. En el segundo caso he enterrado la parte sustancial de la rutina de profundidad en una sección anidada de IFS y cuando tengo que añadir otra regla para la validación de que la estructura del código sólo se hace más compleja.

Otros consejos

Las dos formas de escribir que devolverá los mismos resultados, pero para facilitar la lectura de la primera forma es preferido

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