web-dev-qa-db-ja.com

違いは何ですか ;そして;; Clojureコードのコメントで?

違いは何ですか ;および;; Clojureでコメントを開始するときは?私の テキストエディタ はそれらを異なる色で表示するので、概念的にはいくつかの違いがあると想定しています。

Marginalia はそれらを異なる方法で処理することもわかります。

; 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)
65
pauldoo

通訳に関しては違いはありません。のことを考える ; ;; ;;;そして;;;;異なる見出しレベルとして。

これが私の個人的な使用規約です:

;;;;ファイル全体/モジュール/名前空間の説明など、ファイルのトップレベルのコメント

;;;ファイル内の主要なコードセクション(関数のグループなど)のドキュメント。

;; doc文字列を超える単一の関数のドキュメント(例:関数内のアルゴリズムの説明)

;インラインコメントはおそらく1行で、おそらくコードの行の末尾に

72
G__

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
30
amalloy

Emacs;行末のコメントに使用し、意図しない場合は意外な方法でインデントします。 ;;通常は使用しないので、;;。

Clojureは関係ありません-行は無視されます。 EOLに。

CLにはを使用するという伝統があると思います。より重要なコメント/セクションを示すため。

14
Alex Miller

言語には意味がありません。 ;commentのリーダーマクロです。おそらく他のツールがそれらを解析しますが、「clojure内」では同じです。

7
Arthur Ulfeldt

Clojureの視点からの違いはありません。 ;;;より少し目立つことがわかりましたが、それは私の意見です。

一方、Marginaliaは、コメントをコードセクション(ライセンスなど)に残し、それらに;のフラグが付けられる場合があるため、それらを異なる方法で扱います。これは任意の決定であり、将来変更される可能性があります。

6
fogus

Clojure-modeを含むemacs LISPモードでは、;;は、行の先頭にあるという規則でフォーマットされ、コンテキストに基づいて他の行と同じようにインデントされます。 ;は行末で使用することが想定されているため、現在のコンテキストのインデントにタブで移動することを期待して、行の先頭にセミコロンのコメントを1つ挿入すると、emacsは意図したとおりに動作しません。

例:

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

(Clojureを使用しておらず、これまで聞いたことがない)かわかりませんが、 このスレッドmightのヘルプです。

1
Doug