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

欢迎!请查看关于页面以获取更多关于如何使用本站的信息。

0 投票
Java互操作

目前,clojure.core中的"get"、"get-in"及相关函数仅适用于Clojure向量、地图和Java数组,不能用于java.util.List的实例。

(def al (java.util.Arrays/asList (object-array (link: 1 2 3 4))))
(get al 2)
=> nil

这使得处理类似于嵌套Clojure数据结构的Java对象嵌套结构变得不方便。

这也与其他支持任意java.util.List实例的clojure.core函数(例如"nth"和"count")不兼容。

通过稍作修改RT.java,可以使核心函数操作任意的java.util.List实例。这种改变似乎没有明显的缺点(它不在快速路径上,因此不会影响常规ILookup或Map检查)。

2 个答案

0 投票

评论者:mikera

CLJ-1624补丁

0 投票
参考文献:https://clojure.atlassian.net/browse/CLJ-1624(由mikera报告)
...