Estou acostumado a delimitar declarações com ponto-e-vírgula do Java, então naturalmente faço isso também no código Scala. Também sinto que o código é mais fácil de ler, porque é evidente onde uma instrução termina e outra começa. Mas muitas vezes quando eu publico um código Scala no SO, o código é editado apenas para remover o ponto e vírgula.
- Devo usar ponto e vírgula ou não? Existem diretrizes "oficiais" ou estilo de codificação?
- Existem casos em que o ponto e vírgula é necessário, caso contrário, o código é ambíguo?
coding-style
scala
Petr Pudlák
fonte
fonte
Respostas:
Não existe uma maneira oficialmente "correta" de fazê-lo, mas a maioria dos profissionais omite ponto e vírgula onde quer que seja (é por isso que tantas pessoas removem ponto e vírgula reflexivamente).
A linguagem se esforça muito para fazer você esquecer a necessidade de encerrar as instruções. Infelizmente, ele não é bem- sucedido; portanto, existem várias situações complexas nas quais ponto e vírgula, um conjunto extra de parênteses ou "dicas" semelhantes são necessárias para evitar semânticas indesejadas. Tais situações são quase raras o suficiente para que você normalmente não precise pensar nelas. As opiniões divergem se isso significa que você deve pontuar defensivamente (é o que eu acho) ou nunca pontuar até encontrar problemas (é o que a maioria dos usuários pensa). Por fim, cabe a você se identificar como cidadão renegado ou modelo.
fonte
Quanto você quer entender os idiomas que você usa? Você quer jogar com seus pontos fortes ou não? A sintaxe do Scala incentiva código claro e conciso; os poucos casos extremos nos quais tirar proveito disso causa problemas para o analisador Scala são instrutivos (ou seja, você aprende mais sobre o Scala encontrando e aprendendo a evitá-los) e gradualmente sendo corrigidos (por exemplo, notação de sufixo ). Usar o ponto-e-vírgula defensivamente pode significar que você nunca precisará aprender sobre esses problemas, mas você realmente vê isso como uma coisa boa? As correções para esses problemas geralmente têm outras implicações, mas você perde essas possibilidades.
Outra consideração é que, como Kilian admite, a maioria dos desenvolvedores Scala omite ponto e vírgula por padrão. Como você espera trabalhar com o código de outras pessoas se você mesmo evitar usar o Scala idiomático? Você vai achar muito mais difícil do que precisa.
Não posso enfatizar o suficiente para que esses recursos do analisador Scala tenham sido escolhidos para incentivar códigos limpos, reutilizáveis e funcionais (no sentido fp). Tome a sintaxe do operador infix como um exemplo; incentiva os desenvolvedores a fornecer às classes métodos simples e de propósito único que se compõem bem. A biblioteca de coleções da Scala mostra exatamente como isso pode funcionar. Desenvolvedores Java treinados classicamente e que adotam isso tendem a desenvolver melhores hábitos e novas maneiras de pensar sobre seu código. Aqueles que mantiverem todos esses pontos e colchetes familiares perderão. Eu afirmo que isso também é verdade para aqueles tímidos demais para abandonar o ponto e vírgula.
fonte