我知道我们使用 ; 用于 Clojure 中的注释,相当于 Java 中的 //。但我不明白为什么我们需要#_
有人可以解释一下吗?它用于忽略文本吗?它与 有何不同?如果是这样的话?
;是行注释;;它会忽略源代码中从该行到末尾的文本。这也意味着,有时对最后一行的注释会导致仅包含右括号的行,这通常是避免的。主要用途;是编写注释供人们阅读。
#_称为
丢弃;它忽略下一个表单,这意味着它不知道源文件中的换行符。这主要用于快速“切换”代码。还可以堆叠#_。例如{#_#_ :a 42}。
请注意,还有一个(comment ...)宏,它会丢弃主体并返回nil; 因此,身体必须是“有效的”,并且强烈建议您不要使用它,否则结果可能会造成严重破坏。这主要用于在源代码或代码中提供一些“概念证明”,您可以在 REPL 中快速运行,但不应该作为 的一部分运行ns,或者当您懒得编写适当的测试时。