Esto no es una guerra santa, esto no es una cuestión de “cuál es mejor”.
¿Cuáles son las ventajas de usar el siguiente formato para bloques if de una sola declaración?
if (x) print "x is true";
if(x)
print "x is true";
Opuesto a
if (x) { print "x is true"; }
if(x) {
print "x is true";
}
Si formatea su declaración única ifs sin corchetes o conoce a un programador que lo haga, ¿qué te llevó a adoptar este estilo en primer lugar? Estoy específicamente interesado en los beneficios que esto le ha traído.
Actualizar: Como la respuesta más popular ignora la pregunta real (incluso si presenta el consejo más sensato), aquí hay un resumen de los profesionales sin paréntesis.
- compacidad
- Más legible para algunos
- Los corchetes invocan el alcance, que tiene una sobrecarga teórica en algunos casos
No me gusta mucho ningún estilo que coloque la prueba y el cuerpo del if en la misma línea.
Esto se debe a que compartir la línea hace que sea imposible establecer un punto de interrupción en el cuerpo del if en muchos depuradores porque los puntos de interrupción generalmente se basan en el número de línea.
siempre uso
if(x)
{
print "x is true";
}
omitir las llaves puede hacer que alguien mantenga el código pensando erróneamente que está agregando a la cláusula if si agrega una línea después de la línea actual.
yo suelo
if (x)
{
DoSomething();
}
para múltiples líneas, pero prefiero líneas sin paréntesis:
if (x)
DoSomething();
else
DoSomethingElse();
Encuentro los corchetes extraños visualmente ofensivos, y nunca he cometido uno de los errores mencionados anteriormente al no agregar corchetes al agregar otra declaración.
if
{
// code
}
else
{
// else code
}
porque me gusta cuando los bloques de código se alinean (incluidas las llaves).
No puede seguir “esto no es lo que es mejor” con “cuáles son los pros”. Ambos son comparaciones.
– John Sheehan
18 de septiembre de 2008 a las 22:10
Los pros son argumentos a favor, los contras son argumentos en contra. Toda decisión tiene pros o contras. “Mejor” es un juicio en el que decide qué pros y contras se adaptan mejor a su situación particular.
– Alan Tormenta
18 de septiembre de 2008 a las 22:23
¿No es esta una de las preguntas explícitamente “prohibidas” por Jeff en algún momento? ¿Qué puede ganar alguien leyendo esto?
– Programador fuera de la ley
30 de septiembre de 2008 a las 20:19
Para una pregunta etiquetada como ‘c’, es sorprendente ver notaciones que no son C como ‘
print "x is true";
‘–Jonathan Leffler
10 de julio de 2009 a las 5:36
@Jonathan es solo un pseudocódigo. Etiqueté la pregunta c porque, en mi experiencia, los codificadores de c tienden a usar la forma corta sin paréntesis la mayoría de las veces y quería su perspectiva sobre el tema.
– Alan Tormenta
10 de julio de 2009 a las 7:28