if
Deben evitarse las condiciones de bobinado prolongado si es posible, pero a veces todos terminamos escribiéndolos. Incluso si es una condición muy simple, las declaraciones involucradas a veces son simplemente muy verbales, por lo que toda la condición termina siendo muy larga. ¿Cuál es la forma más fácil de formatear?
if (FoobarBaz::quxQuux(corge, grault) || !garply(waldo) || fred(plugh) !== xyzzy) {
thud();
}
o
if (
FoobarBaz::quxQuux(corge, grault)
|| !garply(waldo)
|| fred(plugh) !== xyzzy
) {
thud();
}
o
if (FoobarBaz::quxQuux(corge, grault)
|| !garply(waldo)
|| fred(plugh) !== xyzzy) {
thud();
}
o
thudable = FoobarBaz::quxQuux(corge, grault);
thudable ||= !garply(waldo);
thudable ||= fred(plugh) !== xyzzy;
if (thudable) {
thud();
}
o alguna otra preferencia?
coding-style
conditions
difunto
fuente
fuente
Me gusta mantener los operadores al final para indicar la continuación:
fuente
Soy un gran admirador de los nombres de variables significativas:
O refactorizar como una función, como se mencionó anteriormente.
fuente
Desgloso las subexpresiones más desordenadas, o todas ellas, como variables bool. Entonces, la lógica booleana de nivel superior de la declaración 'if' se puede aclarar. En el tipo de trabajo que hago, no siempre son varias cosas ORed o ANDed.
Esto es especialmente bueno en un depurador, donde puedo ver todos los bools antes de ejecutar el 'if'.
fuente
Tiendo a alinear los operadores al comienzo de las nuevas líneas, así que recuerdo cómo estoy combinando términos (tanto para lógica larga como para aritmética larga). Me gusta esto:
Esto solo funciona si sangro por 2 espacios o configuro establecer mi entorno para sangrar más predicados multilínea, o de lo contrario sería difícil saber dónde termina el predicado y dónde comienza el código útil.
fuente
Soy fan de lo siguiente:
De esta manera, todavía parece una expresión if y no una expresión if desglosada en pedazos. La sangría ayuda a mostrar que es una continuación de la línea anterior.
También puede sangrarlo hasta que el paréntesis de apertura esté al final de la línea anterior para que esté al final de la expresión if como se supone que debe estar.
fuente