В чем разница между; и; в комментариях кода Clojure?



в чем разница между ; и ;; при запуске комментария в Clojure? Я вижу, что мой текстовый редактор цвета их по-разному,поэтому я предполагаю, что нет никакой разницы.



Я тоже это вижу заметки на полях относится к ним по-разному:



; 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)
602   7  

7 ответов:

нет никакой разницы, что касается интерпретатора. Подумайте о;;;;;; и;;;; как о разных уровнях заголовка.

вот мое соглашение о личном использовании:

;;;; комментарии верхнего уровня файла, такие как описание всего файла/модуля/пространства имен

;;; документация для основных разделов кода (т. е. групп функций) в файле.

;; документация для отдельных функций, которая выходит за пределы строки документа (например объяснение алгоритма внутри функции)

; встроенные комментарии, возможно, на одной строке, и, возможно, хвост строки кода

Проверьте официальное описание смысла ; vs ;; в elisp: поскольку индентор Clojure в основном один и тот же, он будет относиться к ним аналогично. В принципе, используйте ; Если вы пишете длинное предложение / описание "на полях", которое будет охватывать несколько строк, но должно рассматриваться как одна сущность. Их пример:

(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

индентор будет убедиться, что те остаются выстроились рядом друг с другом. Если вместо этого вы хотите сделать несколько несвязанных однострочных комментариев рядом друг с другом, используйте ;;.

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

Emacs; будет использоваться для комментариев в конце строки и будет отступать удивительным образом, если это не ваше намерение. ; не так я обычно использую ;;.

Clojure не волнует-любая строка игнорируется от ; до EOL.

Я считаю, что в CL есть традиция использовать все большее количество; чтобы указать более важные комментарии / разделы.

нет смысла на язык. ; это макрос чтения для comment возможно, другие инструменты разбирают их, но "внутри clojure" они одинаковы.

нет никакой разницы с точки зрения Clojure. Я нахожу, что ;; выделяется немного лучше, чем ;, но это только мое мнение.

Marginalia, с другой стороны, относится к ним по-разному, потому что есть моменты, когда комментарий должен оставаться в разделе кода (например, лицензия), и они помечены ;. Это произвольное решение и может измениться в будущем.

в режимах Emacs lisp, включая clojure-mode,;; форматируется с условным обозначением быть в начале строки и отступом, как и любая другая строка, на основе контекста. будет использоваться в конце строки, поэтому emacs не будет делать то, что вы хотите, если вы поместите комментарий с одной точкой с запятой в начале строки, ожидая, что он будет вставлен в отступ для текущего контекста.

пример:

(let [foo 1]
  ;; a comment
  foo) ; a comment

Я не уверен (не использовать Clojure и никогда не слышал об этом раньше), но этой темеможет помочь.

Comments

    Ничего не найдено.