作者:重庆制造漫画社 | 2023-08-22 12:40
如何在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
我经常使用一个命令.