Dovrei usare il punto e virgola per delimitare le istruzioni di Scala?

7

Sono abituato a delimitare le dichiarazioni con un punto e virgola da Java, quindi naturalmente lo faccio anche nel codice Scala. Sento anche che il codice è più facile da leggere, perché è evidente dove finisce una frase e ne inizia un'altra. Ma molte volte quando inserisco un pezzo di codice Scala su SO, il codice viene modificato solo per rimuovere il punto e virgola.

  1. Devo usare il punto e virgola o no? Ci sono delle linee guida "ufficiali" o uno stile di codifica?
  2. Ci sono casi in cui è richiesto il punto e virgola, altrimenti il codice è ambiguo?
posta Petr Pudlák 10.07.2013 - 11:50
fonte

2 risposte

8

Non esiste un modo ufficialmente "giusto" per farlo, ma la maggior parte dei professionisti omette i punti e virgola dovunque possano (motivo per cui così tante persone rimuovono i punti e virgola in modo riflessivo).

Il linguaggio si sforza molto di farti dimenticare la necessità di terminare le dichiarazioni. Sfortunatamente, quite non riesce, quindi ci sono varie situazioni complicate in cui il punto e virgola, o un set aggiuntivo di parentesi, o "suggerimenti" simili sono necessari per evitare la semantica indesiderata. Tali situazioni sono quasi abbastanza rare che normalmente non devi pensarci. Le opinioni divergono sul fatto che questo significhi che dovresti puntare sulla difensiva (è quello che penso) o non punzecchiare fino a quando non ti imbatti in guai (è quello che pensa la maggior parte degli utenti). Alla fine, è proprio il fatto di identificarti come rinnegato o cittadino modello.

    
risposta data 10.07.2013 - 12:07
fonte
4

Quanto vuoi capire le lingue che usi? Vuoi giocare ai suoi punti di forza o no? La sintassi di Scala incoraggia un codice chiaro e conciso; i pochi casi limite in cui avvantaggiarti fa sì che i problemi per il parser di Scala siano istruttivi (cioè, si impari di più su Scala incontrando e imparando come evitarli) e gradualmente venendo risolto (ad esempio suffix ). Utilizzare in modo difensivo il punto e virgola potrebbe significare che non dovrai mai conoscere questi problemi, ma lo ritieni davvero positivo? Le correzioni per questi problemi di solito hanno altre implicazioni ma ti perderai queste possibilità.

Un'altra considerazione è che, come ammette Kilian, la maggior parte degli sviluppatori Scala omette i semi-colon di default. Come ti aspetti di lavorare con il codice di altre persone se eviti di usare te stesso l'idiomatico Scala? Lo troverai molto più difficile di quanto sia necessario.

Non posso enfatizzare abbastanza il fatto che queste caratteristiche del parser di Scala siano state scelte per incoraggiare il codice pulito, riutilizzabile e funzionale (nel senso di fp). Prendi la sintassi dell'operatore infisso come esempio; incoraggia gli sviluppatori a fornire lezioni con metodi semplici e monouso che si combinano bene. La biblioteca della collezione di Scala mostra quanto sia bello lavorare. Gli sviluppatori Java di formazione classica che adottano questo approccio tenderanno a sviluppare migliori abitudini e nuovi modi di pensare al loro codice. Coloro che si attengono a tutti quei punti e parentesi familiari non si vedranno. Io sostengo che questo è vero anche per coloro che sono troppo timidi per abbandonare il punto e virgola.

    
risposta data 27.08.2013 - 18:17
fonte

Leggi altre domande sui tag