¿Debo usar punto y coma para delimitar las declaraciones de Scala?

7

Estoy acostumbrado a delimitar sentencias con un punto y coma de Java, así que naturalmente también lo hago en código Scala. También siento que el código es más fácil de leer, porque es evidente que una declaración termina y otra comienza. Pero muchas veces, cuando publico un fragmento de código Scala en SO, el código se edita solo para eliminar los puntos y comas.

  1. ¿Debo usar punto y coma o no? ¿Hay alguna guía o estilo de codificación "oficial"?
  2. ¿Hay casos en que se requieren puntos y comas, de lo contrario el código es ambiguo?
pregunta Petr Pudlák 10.07.2013 - 11:50

2 respuestas

8

No hay una forma oficialmente "correcta" de hacerlo, pero la mayoría de los practicantes omiten los puntos y coma siempre que pueden (por lo que muchas personas eliminan los puntos y comas de forma reflexiva).

El lenguaje se esfuerza por hacerte olvidar la necesidad de terminar las declaraciones. Desafortunadamente, no es bastante exitoso, por lo que hay varias situaciones complejas en las que se necesitan puntos y coma, o un conjunto adicional de paréntesis, o "sugerencias" similares para evitar la semántica no deseada. Tales situaciones son casi lo suficientemente raras como para que normalmente no tenga que pensar en ellas. Las opiniones difieren sobre si esto significa que debes puntuar a la defensiva (eso es lo que creo) o nunca puntuar hasta que te encuentres en problemas (eso es lo que piensa la mayoría de los usuarios). En última instancia, es propio de si se autoidentifica como un renegado o un ciudadano modelo.

    
respondido por el Kilian Foth 10.07.2013 - 12:07
4

¿Cuánto quieres entender los idiomas que usas? ¿Quieres jugar a sus puntos fuertes o no? La sintaxis de Scala alienta el código claro y conciso; los pocos casos extremos en los que aprovechar esto causa problemas para el analizador de Scala son instructivos (es decir, se aprende más sobre Scala encontrando y aprendiendo cómo evitarlos) y se soluciona gradualmente (por ejemplo, notación de sufijo ). El uso defensivo del punto y coma puede significar que nunca tendrá que aprender sobre estos problemas, pero ¿realmente lo ve como algo bueno? Las soluciones para estos problemas generalmente tienen otras implicaciones, pero se perderán estas posibilidades.

Otra consideración es que, como concede Kilian, la mayoría de los desarrolladores de Scala omiten los puntos y coma de forma predeterminada. ¿Cómo espera trabajar con el código de otras personas si evita usar el Scala idiomático? Lo encontrarás mucho más difícil de lo que es necesario.

No puedo enfatizar lo suficiente que estas características del analizador Scala fueron elegidas para fomentar el código limpio, reutilizable y funcional (en el sentido de fp). Tomemos como ejemplo la sintaxis del operador infijo; alienta a los desarrolladores a proporcionar clases con métodos simples y de un solo propósito que se compongan bien juntos. La biblioteca de la colección de Scala muestra cuán bellamente puede funcionar. Los desarrolladores de Java con capacitación clásica que aceptan esto tenderán a desarrollar mejores hábitos y nuevas formas de pensar sobre su código. Aquellos que se adhieran a todos esos puntos y soportes familiares se perderán. Sostengo que esto también es cierto para aquellos que son demasiado tímidos para abandonar el punto y coma.

    
respondido por el itsbruce 27.08.2013 - 18:17

Lea otras preguntas en las etiquetas