请在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))
by
在我的例子中,记录有0个“指定字段”。"`{:tag 1}`"是元数据。即使我使用 `(A. {:tag 1} nil nil)`,我仍然会收到警告。
by
明白了,我将提交一个工单。
...