请分享您的想法,参与 2024 年 Clojure 状态调查!

欢迎!请查看 关于 页面,了解更多关于该网站运作方式的信息。

+1
文档
参数列表

bq. (defmethod multifn dispatch-val & fn-tail)

文档字符串

bq. 创建并安装一个新的多方法与 `dispatch-val` 相关的方法。

这个文档字符串存在一些问题,使得理解起来很困难:

1. `& fn-tail` 参数没有文档说明。`& fn-tail` 的类型/形状是什么?我在参考指南中也没有看到任何提及 - https://clojure.org/reference/multimethods
2. 文档字符串和参数列表在 `multimethod` 与 `multifn` 名称上存在冲突。
3. 文档字符串和参数列表在 `dispatch-value` 与 `dispatch-val` 名称上存在冲突。

旁边注:在 clojuredocs.org 上提到了方法上允许有可选名称,例如 https://docs.clojure.org/clojure.core/defmethod#example-542692c7c026201cdc3269cd,但我在任何官方文档中都没有看到这一点。我不确定这是否被支持。

8 个答案

0

评论者:alexmiller

这里的 fn-tail 指的是 "作为 fn 传递的额外参数" 的意思,这包括函数名称,因此这也是支持的。

0

评论者:marc

添加补丁

0

评论者:alexmiller

与其将文档字符串从多方法更改为多函数,不如将代码从多函数更改为多方法。否则看起来不错。

0
by

评论者:marc

添加更新后的补丁,将参数名称更改为与文档字符串匹配,而不是另一种方式。

0
by

评论者:alexmiller

我更希望在这里只修改文档字符串以匹配 dispatch-val(因此文档字符串改为与代码匹配)。

0
by

评论者:marc

仅更改文档字符串的补丁。

我没有将文档字符串中的 {{multimethod}} 一词更改为 {{multifn}}。我相信,即使参数未记录,名称 {{multimethod}} 更清晰。

请解释一下,为什么你想更改文档字符串而不是参数名称,请Alex?

0
by

评论者:alexmiller

我改变了主意,我认为最好只更改文档字符串以匹配参数名称。

0
by
参考:https://clojure.atlassian.net/browse/CLJ-2212(由 marc 报告)
...