请在 2024 年 Clojure 状态调查! 中分享您的想法。

欢迎!请参阅 关于 页面以了解如何使用本网站的相关信息。

0
文档

据我所知,不能使用 def 创建一个既未绑定又带有 `:doc` 元数据的 var(或者不能在不绑定/更改绑定值的情况下更改现有 var 的 `:doc` 元数据)。

此更改明确了 def 的可能用法;即,如果您提供 `doc-string`,则 必须 也提供 `init`。

5 个答案

0

评论者:jcr

此页面是关于 "clojure def docstring" 的搜索结果中的第一条。鉴于它只是一个微小的文档改进,能否将其合并到下一个版本中?

0
评论者:bronsa

请注意,您可以直接执行 `(def ^{:doc "my-doc-here} var)`,尽管对于这个用例,最好使用 `declare`。
0

评论者:jcr

尼古拉,正确;严格来说,问题描述中“使用 def 创建不具有 :doc 元数据的未绑定变量是不可能的”这部分是不正确的,但实际上这并不会影响补丁本身提出的变化的正确性和实用性。为了澄清,这个 :forms 元数据实际上反映了 {{def}} 的实现方式(而当前的实现方式则不是)

[(def 符号) (def 符号 doc-string? 初始值)]

0

评论者:bronsa

当然是!我并不是在质疑这个工单,只是让你知道你可以使用显式的元数据语法,以防你不知道(因为描述似乎暗示了这一点)

0
参考: https://clojure.atlassian.net/browse/CLJ-2159(由 alex+import 报告)
...