Clojure中#_的目的是什么?

坎南·拉莫莫西(Kannan Ramamoorthy)

我正在查看他们使用库代码#_遍历多个参考文献后,我了解到#_丢弃符号,它告诉读者忽略接下来发生的一切。

为什么首先需要它?如果我们有一些要忽略的东西,为什么我们不能删除它或只发表评论呢?#_过度评论有什么意义

致癌物质

当调试或编写一些更改的代码时,它非常方便。假设您有一些强大的功能,并且想要对其进行注释。您有几种选择:

您可以使用行注释:

; (defn some-huge-thing []
;    ... Many lines)

但这很痛苦,除非您的IDE带有注释快捷方式,即使这样做也需要一些工作。另外,我发现大多数IDE对注释快捷方式的处理效果都不理想。有时,他们只是添加注释的另一个“层”,而不是删除现有的注释。如果只想注释掉函数的一小部分,则行注释也无济于事,因为它们不是上下文相关的。

您可以使用comment

(comment 
  (defn some-huge-thing []
      ... Many lines))

但是我个人不喜欢,comment因为在这里,它需要嵌套整个内容,或者违反Parinfer只是为了添加评论。就像@amalloy指出的那样,它最终会扩展为nil,因此只能在杂散nil不会影响任何情况的情况下使用

...或者,您可以使用#_

#_
(defn some-huge-thing []
    ... Many lines)

它根本不需要更改功能。只需敲两次键,再敲两次即可。它也不会评估为nil; 它只是被忽略。这意味着您可以使用它来例如在函数调用中注释掉参数。

#_在尝试不同的实现以及试图隔离错误时,我个人经常使用它会导致所有在其后立即出现的事件都被忽略,因此很容易控制正在执行和未执行的内容。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章