在Clojure中阻止评论

时间:2009-07-28 02:18:29

标签: clojure

如何在Clojure中评论多行?

9 个答案:

答案 0 :(得分:141)

实际上,有办法!


(comment

(defn hey [] ("Hey there!"))

Check me out! )

只需将你的评论包装在(评论..)中:)

玩得开心!

答案 1 :(得分:97)

Clojure支持#_阅读器宏,它完全跳过下一个表单。有关Clojure Reader的页面上提到了这一点。还有comment macro具有类似的效果,但实现方式不同。

以上两点都要求你注释掉的东西在语法上是正确的S表达式。

有些Lisp方言有一个多行注释,可以包含任意文本,但我没有看到Clojure。

答案 2 :(得分:23)

双引号(字符串文字)允许添加任意文本(不仅是正确的S形式):

root:
    createfile.php
    files:
         file1.txt

答案 3 :(得分:16)

其他例子很棒,我只想再添加一个技巧:

有时您想要注释掉几行代码,但是仍然让编译器编译并报告任何错误(例如,您计划执行的顶级命名空间中的一组命令后来在REPL)。

在这种情况下,我喜欢用(fn [] .....)包装代码,这意味着它仍然被编译,它只是不被调用。

答案 4 :(得分:15)

查看此链接: http://en.wikibooks.org/wiki/Clojure_Programming/Tutorials_and_Tips

您可以使用语法

创建多行注释
(comment .....
    ....)

答案 5 :(得分:9)

使用emacs和cider时,我经常使用命令M-x comment-region

答案 6 :(得分:2)

在Emacs中,您可以使用命令M-;M-x comment-dwim的快捷方式)。它将评论或取消注释文本/代码的任何标记区域,因此,只要您的整个功能或功能集包含在该区域中,您就可以非常轻松地评论或取消注释该区域。可以找到M-;函数的Emacs参考手册here

答案 7 :(得分:2)

我知道有多种方式:

第一个是使用comment宏:只有评估评论体内的所有代码(但它仍会检查平衡括号/括号)。如果你对paredit了解自己的方式,那么如果你想评论几个性别呼叫,就不会花太多时间。

@RequestMapping(method = RequestMethod.GET, value = "/app/products")
    public List<Product> getAllProducts(){
        return productService.getAllProducts();}

@RequestMapping(method = RequestMethod.POST, value = "/app/products")
        public void addProduct(@RequestBody Product product){
            productService.addProduct(product); }

但是,它仍将检查括号匹配。因此,如果您有不平衡的括号,您的代码将无法编译(产生(comment (println 1)) )。

另一种方法是使用java.lang.RuntimeException: EOF while reading(又名丢弃宏):它将丢弃下一个性别,这是我个人喜欢的方式(更快打字,通常我在性别调查时就这样做,我必须调试) :

#_

它还检查不匹配的分隔符:所以如果你有不平衡的括号,它也不会编译。

最后,有#_(println 1) 字符将对该行进行注释(类似于其他语言注释功能),编译将完全忽略它。如果要评论多行,则需要在所有行前加上; ,这通常很麻烦,但通常文本编辑器会在选择多行后使用命令为您完成。

;

答案 8 :(得分:0)

对于较长的注释块,宏#_或(注释...)无法正常工作,然后我使用VSCODE(OS X)进行了注释块。

  1. 突出显示注释框。
  2. 在vscode中按command + shift + p。
  3. 找到“添加行注释”