Saltar al contenido

¿Es una mala práctica utilizar una declaración if sin llaves?

Solución:

El problema con la primera versión es que si retrocede y agrega una segunda declaración a las cláusulas if o else sin recordar agregar las llaves, su código se romperá de maneras inesperadas y divertidas.

En cuanto a la mantenibilidad, es siempre más inteligente utilizar la segunda forma.

EDITAR: Ned señala esto en los comentarios, pero creo que también vale la pena vincularlo aquí. Esto no es solo una tontería hipotética de torre de marfil: https://www.imperialviolet.org/2014/02/22/applebug.html

Un problema de omitir bloques de instrucciones es la ambigüedad de lo demás. Es decir, los lenguajes inspirados en C ignoran la sangría y, por lo tanto, no tienen forma de separar esto:

if(one)
    if(two)
        foo();
    else
        bar();

De esto:

if(one)
    if(two)
        foo();
else
    bar();

Mi patrón general es que si cabe en una línea, haré:

if(true) do_something();

Si hay una cláusula else, o si el código en el que quiero ejecutar true es de una longitud significativa, tirantes hasta el final:

if(true) {
    do_something_and_pass_arguments_to_it(argument1, argument2, argument3);
}

if(false) {
    do_something();
} else {
    do_something_else();
}

En última instancia, todo se reduce a una cuestión subjetiva de estilo y legibilidad. El mundo de la programación general, sin embargo, se divide en dos partes (para los lenguajes que usan llaves): utilícelos todo el tiempo sin excepción, o utilícelos todo el tiempo con excepción. Soy parte del último grupo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *