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

评论由:alexmiller 撰写

与其将 docstring 从 multimethod 改为 multifn,我更愿意将代码从 multifn 改为 multimethod。其他方面看起来都很好。

0

评论由:marc 撰写

新增补丁,将参数名称更新以匹配 docstring,而不是反过来。

0

评论由:alexmiller 撰写

我宁愿这里只更改 dispatch-val 的 docstring(因此 docstring 的更改以匹配代码)。

0

评论由:marc 撰写

仅更改 docstring 的补丁。

我在 docstring 中没有将 {{multimethod}} 改为 {{multifn}}。我相信即使参数没有记录,名称 {{multimethod}} 更加清晰。

请解释一下你为什么要更改 docstring 而不是参数名称,Alex。

0

评论由:alexmiller 撰写

我改变了主意,我认为最好是将 docstring 改得更匹配 arg 名称。

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