Pensar en C++ (Volumen 1) - Grupo ARCO
Pensar en C++ (Volumen 1) - Grupo ARCO
Pensar en C++ (Volumen 1) - Grupo ARCO
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
✐<br />
✐<br />
✐<br />
“Volum<strong>en</strong>1” — 2012/1/12 — 13:52 — page 527 — #565<br />
✐<br />
A.4. Paréntesis, llaves e ind<strong>en</strong>tación<br />
float y;<br />
{<br />
/* body here */<br />
}<br />
Aquí, quedaría bastante mal poner la llave de apertura <strong>en</strong> la misma línea, así<br />
que nadie lo hacía. Sin embargo, había distintas opiniones sobre si las llaves debían<br />
ind<strong>en</strong>tarse con el cuerpo del código o debían dejarse a nivel con el «precursor». De<br />
modo que t<strong>en</strong>emos muchos estilos difer<strong>en</strong>tes.<br />
Hay otros argum<strong>en</strong>tos para poner la llave <strong>en</strong> la línea sigui<strong>en</strong>te a la declaración<br />
(de una clase, struct, función, etc). Lo sigui<strong>en</strong>te provi<strong>en</strong>e de un lector, y lo pres<strong>en</strong>to<br />
aquí para que sepa a qué se refiere.<br />
Los usuarios experim<strong>en</strong>tado de vi (vim) sab<strong>en</strong> que pulsar la tecla «]» dos veces<br />
lleva el cursor a la sigui<strong>en</strong>te ocurr<strong>en</strong>cia de «{» (o ˆL) <strong>en</strong> la columna 0. Esta característica<br />
es extremadam<strong>en</strong>te útil para moverse por el código (saltando a la sigui<strong>en</strong>te<br />
defición de función o clase). [Mi com<strong>en</strong>tario: cuando yo trabajaba <strong>en</strong> Unix, GNU<br />
Emacs acababa de aparecer y yo me convertí <strong>en</strong> un fan suyo. Como resultado, vi<br />
nunca ha t<strong>en</strong>ido s<strong>en</strong>tido para mí, y por eso yo no pi<strong>en</strong>so <strong>en</strong> términos de «situación<br />
de columna 0». Sin embargo, hay una bu<strong>en</strong>a cantidad de usuarios de vi ahí fuera, a<br />
los que les afecta esta característica.]<br />
Poni<strong>en</strong>do la «{» <strong>en</strong> la sigui<strong>en</strong>te línea se eliminan algunas confusiones <strong>en</strong> s<strong>en</strong>t<strong>en</strong>cias<br />
condicionales complejas, ayudando a la escaneabilidad.<br />
if (cond1<br />
&& cond2<br />
&& cond3) {<br />
statem<strong>en</strong>t;<br />
}<br />
Lo anterior [dice el lector] ti<strong>en</strong>e una escaneabilidad pobre. Sin embargo,<br />
if (cond1<br />
&& cond2<br />
&& cond3)<br />
{<br />
statem<strong>en</strong>t;<br />
}<br />
separa el if del cuerpo, mejorando la legibilidad. [Sus opiniones sobre si eso es<br />
cierto variarán dep<strong>en</strong>di<strong>en</strong>do para qué lo haya usado.]<br />
Finalm<strong>en</strong>te, es mucho más fácil visualizar llaves emparejadas si están alineadas<br />
<strong>en</strong> la misma columna. Visualm<strong>en</strong>te destacan mucho más. [Fin del com<strong>en</strong>tario del<br />
lector]<br />
El tema de dónde poner la llave de apertura es probablem<strong>en</strong>te el asunto <strong>en</strong> el que<br />
hay m<strong>en</strong>os acuerdo. He apr<strong>en</strong>dido a leer ambas formas, y al final cada uno utiliza<br />
la que le resulta más cómoda. Sin embargo, he visto que el estándar oficial de codificación<br />
de Java (que se puede <strong>en</strong>contar <strong>en</strong> la página de Java de Sun) efectivam<strong>en</strong>te<br />
es el mismo que yo he pres<strong>en</strong>tado aquí - dado que más personas están empezando a<br />
programar <strong>en</strong> ambos l<strong>en</strong>guajes, la consist<strong>en</strong>cia <strong>en</strong>tre estilos puede ser útil.<br />
Mi <strong>en</strong>foque elimina todas las excepciones y casos especiales, y lógicam<strong>en</strong>te produce<br />
un único estilo de ind<strong>en</strong>tación, Incluso con un cuerpo de función, la consist<strong>en</strong>-<br />
527<br />
✐<br />
✐<br />
✐<br />
✐