답변:
사실 방법이 있습니다!
(comment
(defn hey []
("Hey there!"))
Check me out!
)
의견을 (comment ..) :)
즐기세요!
Clojure는 #_
다음 양식을 완전히 건너 뛰는 판독기 매크로를 지원합니다 . 이것은 Clojure Reader 에 관한 페이지에 언급되어 있습니다. 비슷한 효과가 있지만 다르게 구현되는 주석 매크로 도 있습니다 .
위의 두 가지 모두 주석 처리중인 것이 그렇지 않으면 구문 상 올바른 S- 표현식이어야합니다.
일부 Lisp 방언에는 임의의 텍스트를 포함 할 수있는 여러 줄 주석이 있지만 Clojure에 대해서는 표시되지 않습니다.
*scratch*
버퍼에서 정크 를 여러 줄 뒤 ;
;;
또는 ;;;
여러 줄에 입력하고 세미콜론 뒤의 첫 번째 단어에 커서를 놓고를 누릅니다 Meta-Q
).
큰 따옴표 (문자열 리터럴)를 사용하면 임의의 텍스트를 추가 할 수 있습니다 (적절한 S 형식뿐 아니라).
(comment "
public class HelloWorld {
public static void main(String[] args) {
System.out.print("Hello, World");
System.out.println();
}
}
")
Hello
, 세 번째 형식은 symbol World
, 네 번째 형식은 다른 문자열입니다. comment
모든 양식을 무시합니다. 따라서 예제에서 우리는 Hello, World
합법적 인 클로저로 구문 분석 하는 것이 운이 좋습니다 . 임의의 텍스트에서는 작동하지 않습니다. 예를 들어 (comment "print("/foo")")
는 오류로 죽습니다 Invalid token: /foo
.
이 링크를 참조하십시오 : http://en.wikibooks.org/wiki/Clojure_Programming/Tutorials_and_Tips
구문을 사용하여 여러 줄 주석을 작성할 수 있습니다.
(comment .....
....)
내가 아는 여러 가지 방법이 있습니다.
첫 번째는 주석 매크로를 사용하는 것입니다 . 주석 본문 내의 모든 코드를 평가 하지는 않지만 균형 잡힌 괄호 / 대괄호를 확인합니다. paredit를 사용하는 방법을 알고 있다면 몇 번의 sexp 호출에 대해 의견을 말하고 싶다면 시간이 많이 걸리지 않을 것입니다.
(comment
(println 1))
그러나 여전히 괄호 일치를 확인합니다. 따라서 불균형 괄호가 있으면 코드가 컴파일되지 않습니다.java.lang.RuntimeException: EOF while reading
).
또 다른 방법은 #_
(일명 폐기 매크로)를 사용하는 것입니다. 이것은 제가 개인적으로 선호하는 방식 인 다음 sexp를 폐기 할 것입니다 (입력하는 것이 더 빠르며 일반적으로 디버그해야 할 때 sexps에서 수행합니다).
#_(println 1)
또한 일치하지 않는 구분 기호를 확인하므로 균형이 맞지 않는 괄호가 있으면 컴파일되지 않습니다.
마지막으로 ;
줄을 주석 처리 하는 문자 (다른 언어 주석 기능과 유사)가 있으며 컴파일은이를 완전히 무시합니다. 여러 줄을 주석 처리하려면 모든 줄 앞에;를 추가해야합니다. , 이는 일반적으로 번거롭지 만 일반적으로 텍스트 편집기는 여러 줄을 선택한 후 명령을 사용하여 자동으로 수행합니다.
; (println 1)
; (println 1 also won't break
긴 주석 블록의 경우 매크로 #_ 또는 (주석 ...)이 제대로 작동하지 않았고 VSCODE (OS X)로 주석 블록을 수행했습니다.