Відповіді:
Власне, спосіб є!
(comment
(defn hey []
("Hey there!"))
Check me out!
)
Просто загорніть свої коментарі (коментар ..) :)
Веселіться!
Clojure підтримує #_
макрос читача, який повністю пропускає наступну форму. Про це йдеться на сторінці про читач Clojure . Існує також макрос коментарів, який має подібний ефект, але реалізується по-різному.
І вище, і інше вимагають, щоб те, що ви коментуєте, інакше було синтаксично правильним S-виразом.
Деякі діалекти Ліспа мають багаторядковий коментар, який може містити довільний текст, але я не бачу жодного для Clojure.
*scratch*
буфер просто введіть кілька небажаних файлів після ;
;;
чи ;;;
в декількох рядках, поставте курсор на перше слово після крапки з комою та натисніть Meta-Q
).
Подвійні лапки (рядкові букви) дозволяють додавати довільний текст (не тільки належні S-форми):
(comment "
public class HelloWorld {
public static void main(String[] args) {
System.out.print("Hello, World");
System.out.println();
}
}
")
Hello
, 3-я форма - символ World
, а 4-я форма - інша. comment
просто ігнорує всі форми. Тож у прикладі нам пощастило, що Hello, World
розбирається як юридична роль. Він не працює з довільним текстом. Наприклад, (comment "print("/foo")")
помре з помилкою Invalid token: /foo
.
Інші приклади чудові, я хотів би додати ще один трюк:
Іноді ви хочете прокоментувати кілька рядків коду, але компілятор все-таки повинен скомпілювати його і повідомити про будь-які помилки (наприклад, набір команд у просторі імен верхнього рівня, які ви плануєте виконати пізніше в REPL).
У цьому випадку мені подобається обернути код, (fn [] .....)
що означає, що він все ще збирається, він просто не викликається.
Перейдіть за цим посиланням: http://en.wikibooks.org/wiki/Clojure_Programming/Tutorials_and_Tips
Можна створити багаторядкові коментарі за допомогою синтаксису
(comment .....
....)
У Emacs ви можете використовувати команду M-;
(ярлик для M-x comment-dwim
). Він коментує або коментує будь-яку позначену область тексту / коду, тому, поки вся ваша функція або набір функцій включена в регіон, ви можете легко коментувати або коментувати цей регіон. Довідковий посібник Emacs щодо цієї функції M-;
можна знайти тут .
Я знаю кілька способів:
Спочатку використовується макрос коментарів : він не оцінює весь код всередині коментованого органу (але він все ще перевіряє збалансованість дужок / дужок). Якщо ви знаєте свій шлях з паритетом, це не займе багато часу, якщо ви хочете прокоментувати кілька сексуальних дзвінків.
(comment
(println 1))
Однак він все одно перевірятиме відповідність дужок. Отже, якщо у вас незбалансована дужка, код не буде компілюватися (поступається java.lang.RuntimeException: EOF while reading
).
Інший спосіб - це використання #_
(він же макрос відкидання): він відкине наступний sexp, який я вважаю за краще особисто (швидше набирати і зазвичай я це роблю на sexps, коли мені доведеться налагоджувати):
#_(println 1)
Він також перевіряє наявність невідмінних роздільників: тому, якщо у вас є незбалансована дужка, вона також не буде компілюватися.
Нарешті, є ;
символ, який буде коментувати рядок (подібно до функції коментування інших мов), і компіляція повністю ігнорує його. Якщо ви хочете прокоментувати кілька рядків, вам потрібно додати всі рядки; , як правило, це неприємно, але зазвичай редактори тексту зроблять це за допомогою команди після вибору кількох рядків.
; (println 1)
; (println 1 also won't break
Для довгого блоку коментарів макроси #_ або (коментар ...) не працювали так само власним чином, тоді я зробив блок коментарів із VSCODE (OS X).