65 votes

Quelle est la différence entre ; et ;; dans les commentaires de code Clojure?

Quelle est la différence entre ; et ;; lorsque vous commencez un commentaire dans Clojure? Je vois que mon éditeur de texte les colore différemment. Je suppose donc qu’il existe théoriquement des différences.

Je vois aussi que Marginalia les traite différemment:

 ; Stripped entirely
;; Appears in text section of marginalia
(defn foobar []
   ; Appears in code section of marginalia output
   ;; Again, appears in code section of marginalia output
   6)
 

73voto

Greg Points 4537

Il n'y a pas de différence dans la mesure où l'interprète est concerné. Pensez ; ;; ;;; et ;;;; que les différents niveaux de titre.

Voici mon utilisation personnelle de la convention:

;;;; Haut-de-fichier niveau des commentaires, comme une description de l'ensemble du fichier/module/espace de noms

;;; Documentation pour les grandes sections de code (par exemple, les groupes de fonctions) dans le fichier.

;; Documentation pour les fonctions simples qui s'étend au-delà de la doc de la chaîne (par exemple, une explication de l'algorithme au sein de la fonction)

; Commentaires en ligne peut-être sur une seule ligne, et éventuellement des résidus d'une ligne de code

30voto

amalloy Points 29125

Découvrez la description officielle de la signification de l' ; vs ;; en elisp: depuis le Clojure pénétrateur est fondamentalement la même, il va les traiter de la même façon. Fondamentalement, il faut utiliser ; si vous écrivez une phrase longue/description "dans les marges", qui va s'étaler sur plusieurs lignes, mais doivent être considérées comme une seule entité. Leur exemple est:

(setq base-version-list                 ; there was a base
      (assoc (substring fn 0 start-vn)  ; version to which
             file-version-assoc-list))  ; this looks like
                                        ; a subversion

L'indenteur va faire en sorte que ces rester alignés les uns à côté des autres. Si, au lieu de cela, vous voulez faire plusieurs sans rapport avec les commentaires d'une ligne à côté de l'autre, utilisez ;;.

(let [x 99 ;; as per ticket #425
      y "test"] ;; remember to test this
  (str x y)) ;; TODO actually write this function

14voto

Alex Miller Points 28225

Emacs; à utiliser pour les commentaires de fin de ligne et indenter de manière surprenante si ce n’est pas votre intention. ;; Je ne l'utilise pas habituellement ;;

Clojure s'en moque - toute ligne est ignorée de la; à EOL.

Je crois qu’il est de tradition dans CL d’utiliser un nombre croissant de; pour indiquer des commentaires / sections plus importants.

7voto

Arthur Ulfeldt Points 45059

aucune signification pour la langue. ; est une macro de lecteur pour comment peut-être que d'autres outils les analysent mais "dans le cadre de clojure", ils sont identiques.

6voto

fogus Points 3909

Il n'y a pas de différence du point de vue de Clojure. Je trouve que ;; se distingue un peu mieux que ; , mais ce n’est que mon opinion.

D'autre part, Marginalia les traite différemment, car un commentaire doit parfois rester dans la section de code (par exemple, une licence) et ceux-ci sont marqués de ; . Cette décision est arbitraire et pourrait changer dans le futur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X