2024 Clojure 状况调查!中分享您的想法。

欢迎!请查看关于页面以了解有关该功能的更多信息。

0
ClojureScript

您好,

下面的代码在 ClojureScript 中发出了不应发出的警告

(defrecord A [])
(A. {:tag 1} nil)
WARNING: Wrong number of args (2) passed to A at line 1 <cljs repl>

文档字符串说明

将定义两个构造函数,一个接受指定的字段
后跟一个元数据映射(无则为 nil)和一个扩展字段
映射(无则为 nil),另一个只接受字段(使用 nil 作为
元数据和扩展字段)。

元数据已正确应用

(meta (A. {:tag 1} nil))
WARNING: Wrong number of args (2) passed to A at line 1 <cljs repl>
{:tag 1}

这是由于这里的检查

我很乐意为这个问题提供一个补丁

1 个答案

0

被选择
 
最佳答案

文档字符串说明构造函数将接受:指定的字段 和 一个元数据映射 和 一个扩展字段映射,因此它应该有 1 个或 3 个参数。您传递了 2 个。这应该可以工作

(meta (A. {:tag 1} nil nil))
作者:
在我的例子中,“已指定字段”为0。`{:tag 1}`是元数据。即使我使用`(A. {:tag 1} nil nil)`,我仍然会收到警告。
作者:
明白了,我会提出一个工单。
...