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

欢迎!请参阅关于页面获取更多关于如何使用本站的信息。

+1
文档
参数列表

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

文档字符串

bq. 创建并安装与 dispatch-value 相关的多方法的新方法。

此文档字符串有几个问题,使得理解变得困难

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
by

评论者是:alexmiller

与其将文档字符串从多方法(multimethod)更改为多函数(multifn),我宁愿修改代码从多函数更改为多方法。否则看起来不错。

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](https://clojure.atlassian.net/browse/CLJ-2212)(由marc报告)
...