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

选中
 
最佳答案

文档字符串指示构造函数将包含:指定的字段 AND 元数据映射 AND 扩展字段映射,因此它应该有1个或3个参数。你已经传递了2个。这应该工作

(meta (A. {:tag 1} nil nil))
在我这个例子中,记录有0个“指定字段”。`{:tag 1}`是元数据。即使我使用`(A. {:tag 1} nil nil)`,我仍然会收到警告
明白了,我会在票据上记录。
...