13.01.2015 Views

Pensar en C++ (Volumen 1) - Grupo ARCO

Pensar en C++ (Volumen 1) - Grupo ARCO

Pensar en C++ (Volumen 1) - Grupo ARCO

SHOW MORE
SHOW LESS

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 />

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!