使用ClojureScript中的关键字访问记录字段与Clojure中的不一样

使用ClojureScript中的关键字访问记录字段与Clojure中的不一样,clojure,clojurescript,Clojure,Clojurescript,当我尝试这个: (defrecord Attr[具有默认值]) (def attr(->attr true 1)) (获取属性:默认值);;=>1. (:默认属性);;=>ClojureScript返回nil,Clojure返回1 使用关键字访问时的行为差异是预期的吗?关于Clojure和ClojureScript之间的差异,我在[docs][1]中找不到任何相关内容 更新2020-08-04 删除。见下一页 更新2020-08-06 有人指出,我以前的更新包含导致问题的拼写错误。我已经删除了

当我尝试这个:

(defrecord Attr[具有默认值])
(def attr(->attr true 1))
(获取属性:默认值);;=>1.
(:默认属性);;=>ClojureScript返回nil,Clojure返回1
使用关键字访问时的行为差异是预期的吗?关于Clojure和ClojureScript之间的差异,我在[docs][1]中找不到任何相关内容

更新2020-08-04

删除。见下一页

更新2020-08-06

有人指出,我以前的更新包含导致问题的拼写错误。我已经删除了更新,而不是把它作为一个陷阱留给未来的读者

它不会改变原始观察结果或解决方案



  [1]: https://www.clojurescript.org/about/differences#_data_structures

已证实的看起来像只虫子。您应该向
clojure@googlegroups.com
我用shadow cljs测试了它,得到了同样奇怪的行为。您可以使用
:has default
attr
中查找值,但是
:default
不起作用,尽管它是其中一个键:这与
default
有关,因为
default
过去是一个保留的JS文本,所以有时会被选中
default$
。不完全确定在什么情况下会发生这种情况。现在,官方报道这类事情的地方是@Thomas Heller:这似乎是个问题。通过将
default
更改为不同的内容,如
default val
,它在我想到的任何地方都能正常工作。谢谢