阻断Clojure的评论(Block Comments in Clojure)

2019-07-30 22:25发布

如何评论Clojure中的多行?

Answer 1:

其实,还有一个办法!

 (comment 

(DEFN哎[]( “嘿!”))

对我进行检查! )

只是包装在您的评论(评论。):)

玩得开心!



Answer 2:

Clojure的支持#_读者宏其完全跳过下一形式。 这是一个关于网页上提到Clojure的读者 。 也有评论宏具有类似的效果,但实现方式不同。

上述两个要求,你注释掉的东西,否则是一个语法正确的S-表达。

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



Answer 3:

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

(comment "

public class HelloWorld {
    public static void main(String[] args) {
        System.out.print("Hello, World");
        System.out.println();
    }
}

")


Answer 4:

其他的例子是伟大的,我只是想增加一个绝招:

有时你想注释掉的几行代码,但仍然有编译器编译并报告任何错误 (例如,一组你打算在以后REPL执行的顶级命名空间的命令)。

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



Answer 5:

请参阅此链接: http://en.wikibooks.org/wiki/Clojure_Programming/Tutorials_and_Tips

您可以创建语法多评论

(comment .....
    ....)


Answer 6:

当使用emacs和苹果酒,有一个命令Mx comment-region ,我经常使用。



Answer 7:

在Emacs,你可以使用命令M-; (快捷键为Mx comment-dwim )。 它会评论或取消注释的文本/代码的任何标记的区域,所以,只要你的整个功能或一组功能包括在该地区,你可以发表评论或取消注释该地区很容易。 该函数的Emacs的参考手册M-; 可以发现在这里 。



Answer 8:

有多种方法,我知道:

第一种是使用注释宏:它不但没有评估评论体内的所有代码(但它仍检查平衡括号/括号中)。 如果你知道你的paredit方式,如果你要评论数SEXP调用它不会花费太多时间。

(comment 
 (println 1))

但是,它仍然会检查括号匹配。 所以,如果你有不平衡的括号,你的代码将不能编译(产生java.lang.RuntimeException: EOF while reading )。

另一种方法是使用#_ (又名丢弃宏):它会放弃接下来的SEXP,这是我个人比较喜欢(更快的输入,通常我这样做对sexps当我有调试)方式:

#_(println 1)

它还检查无与伦比的分隔符:所以如果你有不平衡的括号,它不会编译为好。

最后,还有的; 字符将注释行(类似于其他语言解说功能)和编译会完全忽略它。 如果你想发表评论多行,你需要预先所有的线; ,这通常是一个麻烦,但一般的文本编辑器将选择多行后,命令你做它。

;  (println 1)
;  (println 1 also won't break


文章来源: Block Comments in Clojure