Por lo general, como primera tarea de codificación, estos corchetes no son realmente necesarios. Pero en cada proyecto no trivial siempre tendrá algunas modificaciones en una etapa posterior. No hay forma de evitar esto, sucederá. Y no es posible planificar cada uno de los futuros desarrollos, por lo que es mejor planificar el cambio.
Para explicar: cuando haya escrito su código sin llaves, agregar algo más tarde significa que también debe tener cuidado de agregar las llaves. Y dado que los humanos ven y leen usando una forma de “lógica difusa” (es decir, no “leemos” cada letra y signo de puntuación), es muy fácil pasar por alto estas cosas. Por lo tanto, para evitar tales errores “difusos” en el futuro, simplemente agregue las llaves incluso en las líneas de pedido individuales (vamos, son solo 2 pulsaciones de teclas, no más de un segundo extra).
Como muestra el ejemplo de Toby, el error más reciente comúnmente conocido de este tipo fue el error de error Goto de Apple. Y eso sucedió exactamente porque algún cambio posterior agregó una declaración goto sin agregar las llaves necesarias para agrupar el código lógicamente. Si las llaves estuvieran allí antes de la edición, la posibilidad de que esto ocurriera hubiera sido mucho menor. El problema con el ejemplo de error de goto es que el goto en sí mismo ya es peligroso y podría restarle importancia al problema “real” de la falla de agrupación de código.
- ¿Cuánto tiempo llevaría descifrar el cifrado FileVault 2 de Apple?
- ¿El procesamiento computacional de música / audio va a la zaga del procesamiento visual / de imagen?
- ¿Qué se siente ser un hacker de sombrero negro?
- ¿Cuáles son las implicaciones de los "hackers patrióticos" en las relaciones internacionales?
- ¿Se pueden piratear las cajas de señales de tráfico?
Otro gran problema es al entrar en ifs anidados:
if (a) if (b) c(); else d();
¿Ves el problema allí? El código no se ejecutará ya que la sangría está tratando de mostrarse. La única forma de hacer cumplir esto es agregar llaves al menos a la primera cláusula if de la declaración. Entonces, ¿qué sucede cuando luego agrega un anidado si? De nuevo, esto significa que debe volver a leer el código para asegurarse de agruparlo correctamente (sin tener en cuenta ninguna sangría durante la lectura, ya que podría no significar nada en absoluto).
Recuerde también que en Java y Scala, las llaves abren un nuevo ámbito léxico contenido. Esto también podría funcionar para liberar variables definidas dentro de ese alcance. P.ej
¿Utiliza llaves para rítmica adicional?