当前位置:  开发笔记 > 开发工具 > 正文

在Clojure中阻止评论

如何解决《在Clojure中阻止评论》经验,为你挑选了6个好方法。

如何在Clojure中评论多行?



1> Rayne..:

实际上,有一种方法!

(comment

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

Check me out! )

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

玩得开心!


一句警告 - (评论)宏扩展为零.使用#_评论单个表单,或#_(评论...)评论多个表单而不插入nil.
需要注意的是:似乎内部的任何内容(评论......)都需要成为一种正确的形式; 例如(评论你好:世界)很好但是(评论你好:世界)会产生异常.[编辑:]看起来我应该在发表评论之前阅读格雷格·休吉尔的答案......哦,不管怎样,我会留下它以防万一有人做同样的事情.
我以为我想念我的#||#但这样做会更好.
我希望你能和Clojure一起玩.:)

2> Greg Hewgill..:

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

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

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


Clojure多行任意文本注释表单不存在.我提交了一个补丁,添加了#| ...... |#comments,但它被拒绝了,因为它不是一个理想的功能.所以它不太可能很快被添加.
@amalloy:理由是什么?只是不需要,还是有异议?
我经常在模仿文学编程风格时写出冗长的评论.我只是使用emacs重新流动多行注释(在`*scratch*`缓冲区中,只需在多行后输入`;`````或`;;;`之后输入一些垃圾,将光标放在第一个单词之后分号,按"Meta-Q").

3> Ivan Sviaten..:

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

(comment "

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

")


这只是运气.Ivan的例子解析成4种形式:第一种形式是一个字符串,第二种形式是符号"Hello",第三种形式是符号"World",第四种形式是另一种形式.`comment`只是忽略了所有形式.所以在这个例子中我们很幸运,"Hello,World"解析为合法的clojure.它不适用于任意文本.例如,`(注释"print("/ foo")")`将死于错误"无效的令牌:/ foo".
对我有用的好技巧!但是,"Hello World"的引号怎么可能不需要被转义呢?

4> mikera..:

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

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

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



5> chollida..:

请看这个链接:http: //en.wikibooks.org/wiki/Clojure_Programming/Tutorials_and_Tips

您可以使用语法创建多行注释

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



6> claj..:

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

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有