gpt4 book ai didi

clojure - Clojure 中#_ 的目的是什么?

转载 作者:行者123 更新时间:2023-12-01 16:08:37 27 4
gpt4 key购买 nike

我正在经历一个 library code他们在其中使用了 #_ .经过多次引用,我明白 #_discard symbol ,它告诉读者忽略接下来发生的任何事情。

为什么首先需要它?如果我们有一些东西要忽略,为什么我们不能删除它或者只是评论它? #_有什么意义在评论?

最佳答案

在调试或编写一些修改过的代码时,它非常方便。
假设您有一些庞大的功能,并且您想对其进行注释。您有几个选择:
您可以使用行注释:

; (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 ;它只是被忽略了。这意味着您可以使用它,例如,注释掉函数调用内部的参数。
我个人使用 #_经常在尝试不同的实现时以及当我试图隔离错误时。它会导致任何紧随其后的内容被忽略,因此很容易控制执行和未执行的内容。

关于clojure - Clojure 中#_ 的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57547164/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com